“未绑定方法”是Python中的一种调用方式,指的是当Python中使用类来调用类的方法时,由于此时调用方法的不是对象,而是类本身,相当于没有调用者。此时Python不会自动为方法的第一个参数self绑定参数值。因此程序必须显式地为第一个参数self传入方法的调用者。
比如:
|
1 2 3 4 5 6 |
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。如:
|
1 2 3 4 5 6 7 8 9 |
class Bird: def foo(self): print(self," Bird类的foo方法") bar = 200 b = Bird() # b.info = MethodType(Bird,b) Bird.foo("xxx") #xxx Bird类的foo方法 |

马春杰杰



最新评论
站长您好,亚马逊云咨询推广资源,望建立联系,可邮件,谢谢。
换友情链接吗?
看你的站做的挺不错的
恭喜!!太强了,硕博连读啊
雁过留毛,人过留名。
看不懂但大受震撼
每天都在战争,希望2026和平.
ZeroTier 看过多篇帖子,目前群辉、飞牛os、win11 、安卓、ubuntu ≥18.04 顺利通过,这篇相对于简单 实用、特来感谢 🙄