Python中类怎么调用实例

  

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中类怎么调用实例