给定一个方法的引用,有没有办法检查该方法是否绑定(bind)到一个对象?你也可以访问它绑定(bind)的实例吗?
最佳答案
def isbound(method):
return method.im_self is not None
def instance(bounded_method):
return bounded_method.im_self
When a user-defined method object is created by retrieving a user-defined function object from a class, its
im_self
attribute isNone
and the method object is said to be unbound. When one is created by retrieving a user-defined function object from a class via one of its instances, itsim_self
attribute is the instance, and the method object is said to be bound. In either case, the new method'sim_class
attribute is the class from which the retrieval takes place, and itsim_func
attribute is the original function object.
在 Python 中 2.6 and 3.0 :
Instance method objects have new attributes for the object and function comprising the method; the new synonym for
im_self
is__self__
, andim_func
is also available as__func__
. The old names are still supported in Python 2.6, but are gone in 3.0.
关于python - 你如何检查一个python方法是否被绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53225/