python-关于类中的self的详解和使用

本文探讨了Python中类定义中的self关键字,通过实例解释self实际上是指向创建对象本身的引用,无论将其命名为其他名字,功能保持不变。通过示例展示了self在创建多个对象时的作用,帮助理解其在类操作中的重要性。
部署运行你感兴趣的模型镜像

在创建一个类的过程中,会发现这个self会时不时的出现,而且是自动就出现的,这个self究竟是何方神圣呢?


因为略懂英语的缘故,我知道self是自己的意思,初步猜测这个self就是指类自己。验证一下吧。

class Dog():
    name = '哈士奇'
    def speak(self):
       print(self)
dog1 = Dog()
dog1.speak()
print(dog1)
print(Dog)

输出为:

<main.Dog object at 0x000001A2A6134748>
<main.Dog object at 0x000001A2A6134748>
<class ‘main.Dog’>
我们发现,打印dog1这个对象和打印self是一样的,说明这个self就是一个形参,指向的是创建的这个对象本身。

再来看一下,创建多个对象时:

class Dog():
    name = '哈士奇'
    def speak(self):
       print(self)
dog1 = Dog()
dog2 = Dog()
dog3 = Dog()

dog1.speak()
print(dog1)

dog2.speak()
print(dog2)

dog3.speak()
print(dog3)

结果:

<main.Dog object at 0x000001A2A618EC88>
<main.Dog object at 0x000001A2A618EC88>
<main.Dog object at 0x000001A2A618EDA0>
<main.Dog object at 0x000001A2A618EDA0>
<main.Dog object at 0x000001A2A618E7B8>
<main.Dog object at 0x000001A2A618E7B8>

结果已经显而易见了,这样我们在使用类时,就能随心所欲了。

事实上,刚才说过了,这个self就是一个形参,形参的名字我们可以随便取,都是一样的,只不过我们习惯上用self。

class Dog():
    name = '哈士奇'
    def speak(lala):
       print(f'我是{lala.name}')
dog1 = Dog()
dog1.speak()

我是哈士奇

注意:class中没有函数的闭包,方法中不可直接使用类中的属性,必须通过self来传递。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值