Python中类怎么调用实例?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
在Python的类体中定义的方法默认都是实例方法,通过对象来调用实例方法。
但要提醒大家的是,Python的类在很大程度上是一个命名空间,当程序在类体中定义变量,方法时,与前面介绍的定义变量,定义函数其实并没有太大的不同。对比如下代码:
#,定义全局空间的foo函数 def foo (): ,,,print(“全局空间的foo方法“) #,全局空间的酒吧变量 bar =20 class 鸟: ,,,#,定义鸟空间的foo函数 ,,,def foo (): ,,,,,,,印刷(“鸟空间的foo方法“) ,,,#,定义鸟空间的酒吧变量 ,,,bar =200 #,调用全局空间的函数和变量 foo () 打印(bar) #,调用鸟空间的函数和变量 Bird.foo () 打印(Bird.bar)
上面代码在全局空间和鸟类(鸟空间)中分别定义了foo()函数和酒吧变量,从定义它们的代码来看,几乎没有任何区别,只是在鸟类中定义它们时需要缩进。
接下来程序在调用鸟空间内的酒吧变量和foo()函数(方法)时,只要添加鸟。前缀即可,这说明完全可以通过鸟类来调用foo()函数(方法)。这就是类调用实例方法的证明。
现在问题来了,如果使用类调用实例方法,那么该方法的第一个参数(自我)怎么自动绑定呢?例如如下程序:
class 用户: ,,,def walk (自我): ,,,,,,,印刷(自我,,& # 39;正在慢慢地走& # 39;) #,通过类调用实例方法 User.walk ()
运行上面代码,程序会报出如下错误:
TypeError:,走(),missing 1, required positional 论点:& # 39;自我# 39;
请看程序最后一行代码,调走用()方法缺少传入的自我参数,所以导致程序出错。这说明在使用类调用实例方法时,Python不会自动为第一个参数绑定调用者。实际上也没法自动绑定,因此实例方法的调用者是类本身,而不是对象。
如果程序依然希望使用类来调用实例方法,则必须手动为方法的第一个参数传入参数值。例如,将上面的粗体字代码改为如下形式:
u =,用户() #,显式为方法的第一个参数绑定参数的值 User.walk (u)
此代码显式地为走()方法的第一个参数绑定了参数值,这样的调用效果完全等同于执行u.walk ()。
实际上,当通过用户类调用走()实例方法时,Python只要求手动为第一个参数绑定参数值,并不要求必须绑定用户对象,因此也可使用如下代码进行调用:
#,显式为方法的第一个参数绑定fkit字符串参数的值 User.walk (& # 39; fkit& # 39;)
如果按上面方式进行绑定,那么& # 39;fkit& # 39;字符串就会被传给走()方法的第一个参数自我。因此,运行上面代码,将会看到如下输出结果:
fkit 正在慢慢地走之前><强>总结强>
Python的类可以调用实例方法,但使用类调用实例方法时,Python不会自动为方法的第一个参数自我绑定参数值;程序必须显式地为第一个参数自我传入方法调用者。这种调用方式被称为“未绑定方法”。
看完上述内容,你们掌握Python中类怎么调用实例的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
Python中类怎么调用实例