2011-01-13 6 views

उत्तर

30

अजगर 2.6 शुरू आप विशेष विशेषता __self__ उपयोग कर सकते हैं:

>>> a.some.__self__ is a 
True 

im_self py3k में चरणबद्ध तरीके से समाप्त कर रहा है।

जानकारी के लिए, inspect module in the Python Standard Library.

+1

देख बस बनाने के लिए यह पूरी तरह से स्पष्ट: यदि आप अजगर 3. यदि आप अजगर 2 उपयोग कर रहे हैं है का उपयोग करें, बराबर 'im_self' है कि दूसरों को तैनात किया है। –

+2

@ थॉमस: स्थिर python2.x – SilentGhost

+0

में मेरे लिए पूरी तरह से ठीक काम करता है मेरी गलती, मैं आपका जवाब सावधानीपूर्वक पर्याप्त नहीं पढ़ूंगा। –

7
>>> class A(object): 
... def some(self): 
...  pass 
... 
>>> a = A() 
>>> a 
<__main__.A object at 0x7fa9b965f410> 
>>> a.some 
<bound method A.some of <__main__.A object at 0x7fa9b965f410>> 
>>> dir(a.some) 
['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__format__', '__func__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'im_class', 'im_func', 'im_self'] 
>>> a.some.im_self 
<__main__.A object at 0x7fa9b965f410> 
3

कोशिश निम्नलिखित कोड और देखो, अगर यह आपकी मदद करता है:

a.some.im_self 
3

आप कुछ इस तरह मुझे लगता है कि चाहते हैं:

>>> a = A() 
>>> m = a.some 
>>> another_obj = m.im_self 
>>> another_obj 
<__main__.A object at 0x0000000002818320> 

im_self वर्ग उदाहरण वस्तु है।

संबंधित मुद्दे