python方法调用-python 类方法的互相调用及self的含义

本文详细探讨了Python中self的含义,它代表类的实例。通过实例展示了self.__class__指向类。讨论了self可以替换为其他名称,但推荐使用self。同时解释了self在定义方法时不可或缺,并通过例子说明了self在继承和描述符类中的行为。
摘要由CSDN通过智能技术生成

self代表类的实例,而非类。

实例来说明

classTest:defprt(self):print(self)print(self.__class__)

t=Test()

t.prt()

执行结果如下

<__main__.Test object at 0x000000000284E080>

从上面的例子中可以很明显的看出,self代表的是类的实例。而self.__class__则指向类。

self不必非写成self

有很多童鞋是先学习别的语言然后学习Python的,所以总觉得self怪怪的,想写成this,可以吗?

当然可以,还是把上面的代码改写一下。

classTest:defprt(this):print(this)print(this.__class__)

t=Test()

t.prt()

改成this后,运行结果完全一样。

当然,最好还是尊重约定俗成的习惯,使用self。

self可以不写吗

在Python的解释器内部,当我们调用t.prt()时,实际上Python解释成Test.prt(t),也就是说把self替换成类的实例。

有兴趣的童鞋可以把上面的t.prt()一行改写一下,运行后的实际结果完全相同。

实际上已经部分说明了self在定义时不可以省略,如果非要试一下,那么请看下面:

classTest:defprt():print(self)

t=Test()

t.prt()

运行时提醒错误如下:prt在定义时没有参数,但是我们运行时强行传了一个参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值