method - python static variable
¿Cómo encontrar una instancia de un método enlazado en Python? (4)
Al iniciar Python 2.6 puede usar el atributo especial __self__
:
>>> a.some.__self__ is a
True
im_self
se im_self
gradualmente en py3k.
Para más detalles, consulte el módulo de inspect
en la Biblioteca estándar de Python.
>>> class A(object):
... def some(self):
... pass
...
>>> a=A()
>>> a.some
<bound method A.some of <__main__.A object at 0x7f0d6fb9c090>>
IOW, necesito tener acceso a "a" después de haber sido entregado solamente "a.some".
Intenta seguir el código y mira, si te ayuda:
a.some.im_self
Quieres algo como esto, supongo:
>>> a = A()
>>> m = a.some
>>> another_obj = m.im_self
>>> another_obj
<__main__.A object at 0x0000000002818320>
im_self
es el objeto de instancia de clase.
>>> 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>