马春杰杰 Exit Reader Mode

[mcj]Python未绑定方法

未绑定方法”是Python中的一种调用方式,指的是当Python中使用类来调用类的方法时,由于此时调用方法的不是对象,而是类本身,相当于没有调用者。此时Python不会自动为方法的第一个参数self绑定参数值。因此程序必须显式地为第一个参数self传入方法的调用者。

比如:

class Bird:
    def foo(self):
        print("Bird类的foo方法")
    bar = 200
b = Bird()
Bird.foo()

此时直接运行会出现这种错误:TypeError: foo() missing 1 required positional argument: 'self'

也就是缺少指定的self参数。如上面所说,此时我们需要显式地指定调用者,即将Bird.foo()改为Bird.foo(b)即可。

这种用法等于b.foo()

或者我们也可以不指定调用者,而是直接传入参数给self,即:Bird.foo(“xxx”),由于在这个程序中我们并没与对self进行操作,因此这里xxx可以填任意数。当我们对self进行操作时,这里填的xxx就会传给self。如:

class Bird:
    def foo(self):
        print(self," Bird类的foo方法")
    bar = 200
b = Bird()
# b.info = MethodType(Bird,b)
Bird.foo("xxx")

#xxx  Bird类的foo方法

 

本文最后更新于2019年12月29日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!