ali_agha نشر 10 أكتوبر 2015 أرسل تقرير نشر 10 أكتوبر 2015 لنفترض أن لدي المتغير x وأريد معرفة هل هذا المتغير يشير إلى دالة أو لا، حاولت استخدام تابع isinstance لكن لم ينجح الأمر، فما هي الطريقة الصحيحة لمعرفة دالة معينة في البايثون؟ اقتباس
0 هشام رزق الله نشر 10 أكتوبر 2015 أرسل تقرير نشر 10 أكتوبر 2015 كالعادة في البايثون توجد العديد من الطرق للقيام بنفس الوظيفة، بعضها صعب والآخر أسهل، وأبسط طريقة للتأكد من أن الكائن من نوع دالة هي عن طريق التأكد من أن هذا الكائن لديه سمة __call__ عن طريق استخدام التابع hasattr ومن ثم تمرير الكائن:hasattr(obj, '__call__') ويمكنك أيضا استخدام وحدة types للتأكد من أن الكائن هو دالة عن طريق استخدام التابع FunctionType مع isinstance كما يظهر في الأمثلة التالي:In [1]: import types In [2]: types.FunctionType Out[2]: <type 'function'> In [3]: def f(): pass ...: In [4]: isinstance(f, types.FunctionType) Out[4]: True In [5]: isinstance(lambda x : None, types.FunctionType) Out[5]: Trueلاحظ أن lambda تعتبر أيضا دالة.المصدر اقتباس
السؤال
ali_agha
لنفترض أن لدي المتغير x وأريد معرفة هل هذا المتغير يشير إلى دالة أو لا، حاولت استخدام تابع isinstance لكن لم ينجح الأمر، فما هي الطريقة الصحيحة لمعرفة دالة معينة في البايثون؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.