如果我已经通过了一个方法如下:如何获取方法的父对象?
my_function(MyObject.method)
我可以从里面my_function
访问MyObject
,这样我可以打电话MyObject.some_other_method()
?
请区分在类级别和实例级别上是否可以这样做。
如果我已经通过了一个方法如下:如何获取方法的父对象?
my_function(MyObject.method)
我可以从里面my_function
访问MyObject
,这样我可以打电话MyObject.some_other_method()
?
请区分在类级别和实例级别上是否可以这样做。
我肯定不会推荐这样做,但附近有一座小戳后,您可以访问的功能被绑定到对象:
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"
关于一类级:无,除非'method'是一类方法。 –
不是每个方法都有一个类:lambda表达式,嵌套函数等一些方法没有类... –