"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تحديد ما إذا كان متغير بايثون يمثل دالة؟

كيف يمكنني تحديد ما إذا كان متغير بايثون يمثل دالة؟

تم النشر بتاريخ 2024-11-12
تصفح:668

How can I Determine if a Python Variable Represents a Function?

كيفية تحديد ما إذا كان المتغير يمثل دالة في بايثون

في بايثون، قد يكون من المفيد التحقق مما إذا كان المتغير يشير إلى دالة وظيفة. في البداية، يمكن للمرء أن يفكر في استخدام isinstance(x, function)، ولكن بايثون تثير خطأ في الاسم لفئة دالة غير محددة. المتغير عبارة عن دالة، وتقدم Python إمكانية الاتصال به (). بالنسبة إلى Python 2.x وPython 3.2، توفر هذه الطريقة وظيفة التحقق من الكائنات القابلة للاستدعاء. بدلاً من ذلك، بالنسبة لـ Python 3.x قبل 3.2، يمكن للمرء استخدام hasattr(obj, '__call__') لفحص ما إذا كان الكائن يمتلك خاصية __call__ المميزة للكائنات القابلة للاستدعاء.

تحذيرات مع الأنواع.FunctionType وinspect.isfunction

بينما تم اقتراح الأساليب التي تستخدم أنواع.FunctionTypes أو Inspector.isfunction، إلا أن هذه الطرق لها قيود. يقومون بإرجاع False للوظائف غير Python. تفشل الوظائف المضمنة، التي تم تنفيذها في لغة C، في هذا الفحص، على الرغم من أنها قابلة للاستدعاء:

>>> isinstance(open, Types.FunctionType) خطأ شنيع >>> قابل للاستدعاء (مفتوح) صحيح

لذلك، التحقق من الطبيعة القابلة للاستدعاء للكائن يجب أن يتضمن التحقق بشكل صريح من إمكانية استدعائه، وليس توافقه مع تعريف فئة معينة.

بيان الافراج أعيد طبع هذه المقالة على: 1729252937 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3