大佬们,我有疑问
在第37讲中,代码如下:class Ball:
def setName(self, name):
self.name = name
def kick(self):
print('我叫%s, 噢~谁踢我?!'% self.name)
a = Ball()
a.setName('飞火流星')
b = Ball()
b.setName('团队之星')
c = Ball()
c.setName('土豆')#乱入
a.kick()
我叫飞火流星, 噢~谁踢我?!
b.kick()
我叫团队之星, 噢~谁踢我?!
c.kick()
我叫土豆, 噢~谁踢我?!
---------------------------------------------
其中这个self.name = name,我不是很懂是什么意思?我将.去除,程序报错 在Python中,self是一个指向对象本身的引用。在方法定义中,self是第一个参数,
但在方法调用时不需要显式传递该参数,Python会自动将调用该方法的对象作为self参数传递。
在这个例子中,setName方法接受一个参数name,然后将它存储在对象本身中的一个变量self.name中。
这样,每个Ball对象都有自己的name属性,可以在kick方法中访问。
如果你将self去掉,Python将无法识别变量name所属的对象,因为缺少了一个对象引用,
而将 name 当作 setName 方法的一个局部变量
这就是为什么会报错的原因。 {:10_266:}{:10_266:}{:10_266:}{:10_266:}大佬借个楼,我想知道小甲鱼课后练习的那个安装包一直打不开怎么办嗷嗷嗷{:10_266:} 在 Python 中,通过在类中定义函数(即方法)来描述对象的行为。在类中定义的方法的第一个参数通常是 self,它指向调用该方法的对象本身。
当我们使用 a.setName('飞火流星') 设置对象 a 的名字时,实际上是调用了 Ball 类的 setName 方法,并将 a 自身作为 self 传递给了 setName 方法。在方法内部,使用 self.name 将名字存储在了对象 a 的属性 name 中。
因此,self.name = name 表示将参数 name 的值赋给对象的 name 属性。如果将 . 去除,就相当于直接将参数 name 赋给了一个全局变量,而这个变量并不存在,因此会出现 NameError。
如果有用,记得设置最佳答案 不浪RR 发表于 2023-3-10 16:18
大佬借个楼,我想知道小甲鱼课后练习的那个安装包一直打不开怎么 ...
什么安装包
页:
[1]