如何获取方法的父对象?

cjm2671

如果我已经通过了一个方法如下:

my_function(MyObject.method)

我可以MyObject从内部访问my_function,以便我可以打电话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"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章