绑定方法

2018-10-12  本文已影响0人  MononokeHime
class Foo:
    def f(self):
        pass

m1 = Foo()
m2 = Foo()
print(Foo.f)  # <function Foo.f at 0x107513b70>
print(m1,m1.f)  # <__main__.Foo object at 0x109d51f60> <bound method Foo.f of <__main__.Foo object at 0x109d51f60>>
print(m2,m2.f)  # <__main__.Foo object at 0x109d51fd0> <bound method Foo.f of <__main__.Foo object at 0x109d51fd0>>

函数本身也是对象。f方法本质也是描述符,当调用m1.f的时候,函数的__get__方法返回的是绑定方法的对象;而Foo.f访问的时候,函数的__get__方法返回自身的引用

上一篇下一篇

猜你喜欢

热点阅读