绑定方法与非绑定方法

class a:
    def fuc(self):
        print (self)
aa=a()
print (a.fuc)#类直接调用的方法,称为非绑定方法
print (aa.fuc)#类的对象调用的方法,成为绑定方法

aa.fuc()#因为aa.fuc是绑定方法,就是已经把self参数提前进行了绑定,这个参数就是调用者本身。在调用的时候无需再传餐了。
a.fuc(aa)#因为是非绑定方法,所以调用时必须给self传参,注意,在py2中,传递的参数必须是a类的对象,而在py3中,传递的参数可以是任何值,从这点来说,在py3中,在类中定义的方法跟普通函数基本没什么区别

猜你喜欢

转载自www.cnblogs.com/saolv/p/8976156.html