2011-01-13 43 views

回答

30

開始Python 2.6中,你可以使用特殊的屬性__self__

>>> a.some.__self__ is a 
True 

im_self在py3k淘汰。

有關詳細信息,請參閱inspect module in the Python Standard Library.

+1

只是爲了讓它完全清楚:如果你的Python 3.如果你正在使用Python 2,請使用此,相當於是其他人張貼了`im_self`。 – 2011-01-13 11:45:31

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是類的實例對象。

相關問題