मैं पाइथन विशेषज्ञ नहीं हूं, लेकिन क्या यह काम करता है?
testFunc.__self__.__class__
यह बाध्य तरीकों के लिए काम करने के लिए लगता है, लेकिन आपके मामले में, आप एक अबाध विधि का उपयोग किया जा सकता है, ऐसी स्थिति में इस बेहतर कार्य कर सकता:
testFunc.__objclass__
यहाँ परीक्षण मैं प्रयोग किया जाता है:
Python 2.5.2 (r252:60911, Jul 31 2008, 17:31:22)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>> hd = hashlib.md5().hexdigest
>>> hd
<built-in method hexdigest of _hashlib.HASH object at 0x7f9492d96960>
>>> hd.__self__.__class__
<type '_hashlib.HASH'>
>>> hd2 = hd.__self__.__class__.hexdigest
>>> hd2
<method 'hexdigest' of '_hashlib.HASH' objects>
>>> hd2.__objclass__
<type '_hashlib.HASH'>
अरे हाँ, एक और बात:
>>> hd.im_class
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'builtin_function_or_method' object has no attribute 'im_class'
>>> hd2.im_class
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'method_descriptor' object has no attribute 'im_class'
तो यदि आप कुछ बुलेटप्रूफ चाहते हैं, तो इसे __objclass__
और __self__
को भी संभालना चाहिए। लेकिन आपका माइलेज भिन्न हो सकता है।
स्रोत
2008-11-20 16:35:16
टिप: जब आपको ऐसी समस्या हो, तो आप अपने दुभाषिया में "डीआईआर" का उपयोग कर सकते हैं यह देखने के लिए कि कौन सी विधि testFunc है, या बेहतर: ipython टैब पूर्णता मदद करता है! –
मैं हमेशा अपने reponses पर एक पल बहुत देर हो चुकी हूँ। मैं बस नए दस्तावेज़ों में उपयोगकर्ता द्वारा परिभाषित विधियों stanza का पता लगाना प्रतीत नहीं कर सका। +1 – JimB
धन्यवाद; आपके समाधान के उदाहरण के लिए आपका समाधान ठीक काम करता है। दुर्भाग्य से मेरे लिए मैंने अपनी वास्तविक समस्या को बहुत सरल बना दिया था। मैंने इसे किसी अन्य प्रश्न में उठाया है: –