"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं यह कैसे निर्धारित कर सकता हूं कि पाइथॉन वेरिएबल किसी फ़ंक्शन का प्रतिनिधित्व करता है या नहीं?

मैं यह कैसे निर्धारित कर सकता हूं कि पाइथॉन वेरिएबल किसी फ़ंक्शन का प्रतिनिधित्व करता है या नहीं?

2024-11-12 को प्रकाशित
ब्राउज़ करें:510

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

कैसे निर्धारित करें कि कोई वेरिएबल पायथन में किसी फ़ंक्शन का प्रतिनिधित्व करता है या नहीं

पायथन में, यह जांचना उपयोगी हो सकता है कि क्या कोई वेरिएबल किसी को इंगित करता है समारोह। प्रारंभ में, कोई isinstance(x, function) का उपयोग करने पर विचार कर सकता है, लेकिन Python अपरिभाषित फ़ंक्शन वर्ग के लिए एक NameError उठाता है।

कॉल करने योग्य ऑब्जेक्ट और hasattr

यह निर्धारित करने के लिए कि क्या कोई वेरिएबल एक फ़ंक्शन है, पायथन कॉल करने योग्य() प्रदान करता है। Python 2.x और Python 3.2 के लिए, यह विधि कॉल करने योग्य ऑब्जेक्ट की जांच करने की कार्यक्षमता प्रदान करती है। वैकल्पिक रूप से, 3.2 से पहले के पायथन 3.x के लिए, कोई यह जांचने के लिए hasattr(obj, '__call__') का उपयोग कर सकता है कि क्या ऑब्जेक्ट में कॉल करने योग्य ऑब्जेक्ट्स की __call__ विशेषता विशेषता है।

types.FunctionType के साथ चेतावनी और निरीक्षण.इसफंक्शन

जबकि दृष्टिकोण टाइप्स.फंक्शनटाइप्स या इंस्पेक्शन.इसफंक्शन का उपयोग करते हैं सुझाव दिया गया है, इन विधियों की सीमाएँ हैं। वे गैर-पायथन कार्यों के लिए False लौटाते हैं। C में कार्यान्वित अंतर्निहित फ़ंक्शन, इस जांच में विफल हो जाते हैं, भले ही वे कॉल करने योग्य हों:

>>> isinstance(open, types.FunctionType)
False
>>> callable(open)
True

इसलिए, किसी ऑब्जेक्ट की कॉल करने योग्य प्रकृति को सत्यापित करने में स्पष्ट रूप से कॉल करने की क्षमता की जांच शामिल होनी चाहिए, न कि किसी विशिष्ट वर्ग परिभाषा के अनुरूप।

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729252937 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3