在创建一个类的过程中,会发现这个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来传递。 |
本文探讨了Python中类定义中的self关键字,通过实例解释self实际上是指向创建对象本身的引用,无论将其命名为其他名字,功能保持不变。通过示例展示了self在创建多个对象时的作用,帮助理解其在类操作中的重要性。
46万+

被折叠的 条评论
为什么被折叠?



