如果我通过了以下方法:
my_function(MyObject.method)
我可以从MyObject
内部访问my_function
,以便我可以致电MyObject.some_other_method()
吗?
请分辨是否可以在类级别和实例级别执行此操作。
答案 0 :(得分:0)
我绝对不会建议这样做但是经过一点点探索之后,你可以访问函数绑定的对象:
class C:
def __init__(self, _id):
self._id = _id
def a(self):
pass
def b(self):
print("b: {}".format(self._id))
c = C('test')
# you can access the object the function is bound to with __self__
c.a.__self__.b()
def my_function(fn):
fn.__self__.b()
my_function(c.a) # "b: test"