प्रत्येक बाध्य विधि __self__
विशेषता है जो
उदाहरण है, जिसमें इस विधि का ही है, या None
(here से नकल)
बाध्य तरीकों के बारे में अधिक (है Data Model से):
यदि आप एक उदाहरण के माध्यम से एक विधि (कक्षा नामस्थान में परिभाषित एक फ़ंक्शन) तक पहुंचते हैं, तो आपको एक विशेष वस्तु मिलती है: एक बाध्य विधि ( उदाहरण विधि कहा जाता है) ऑब्जेक्ट। ... बाउंड तरीकों दो विशेष रीड-ओनली गुण: m.__self__
वस्तु जिस पर विधि संचालित है ...
तो f.__self__
आप वर्ग उदाहरण मिल जाएगा:
print(f.__self__) # <__main__.Foo object at 0x7f766efeee48>
और
print(type(f.__self__)) # <class '__main__.Foo'>
आप केवलका उपयोग करेंगे: type(f.__self__)
या f.__self__.__class__
आप प्रकार वस्तु मिल जाएगा old-style classes के लिए 210।
नाइटपिक: उदाहरण का प्रकार आवश्यक वर्ग नहीं है जहां फ़ंक्शन परिभाषित किया गया था; सिर्फ इसलिए कि विधि एक्स एक्स के लिए बाध्य है, इसका मतलब यह नहीं है कि फ़ंक्शन को कक्षा वाई में परिभाषित नहीं किया जा सकता है। लेकिन कहा गया है कि यह कोड निश्चित रूप से 99.99% वास्तविक दुनिया परिदृश्यों में सही आउटपुट का उत्पादन करेगा। और वैसे भी यह स्पष्ट नहीं है कि ओपी का अनुमानित आउटपुट 0.01% मामले में क्या होगा। –