第13章 面向对象编程(6)

本文深入探讨了Python中方法的绑定概念及其在不同情境下的调用方式,包括绑定方法与非绑定方法的区别,以及如何在类的实例化过程中正确地调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

13.7 绑定和方法调用

首先,方法仅仅是类内部定义的函数(这意味着方法是类属性而不是实例属性)。

其次,方法只有在其所属的类拥有实例时,才能被调用。当存在一个实例时,方法才被认为是绑定到那个实例了。没有实例时,方法就是未绑定的。

最后,任何一个方法定义中的第一个参数都是变量self,它表示调用此方法的实例对象。

你必须在方法声明中放上self,但可以在方法中不使用实例(self)。如果你的方法中没有用到self,那么请考虑创建一个常规函数,除非你有特别的原因。毕竟,你的方法代码没有使用实例,没有与类关联其功能,这使得它看起来更像一个常规函数。

13.7.1 调用绑定方法

当你在实例中调用一个绑定的方法时,self不需要明确地传入了。这算是”必须声明self作为第一个参数“对你的报酬。当你还没有一个实例并且需要调用一个非绑定方法的时候你必须传递self参数。

13.7.2 调用非绑定方法

我们将在子类构造器中调用父类的构造器并且明确地传递(父类)构造器所需要的self参数(因为我们没有一个父类的实例)。

>>> class C(object): ... def __init__(self): ... self.att1 = 1 ... >>> class D(C): ... def __init__(self): ... C.__init__(self) ... >>> D() <__main__.D object at 0x00F8B250> >>> d=D() >>> d.att1 1 >>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值