|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
正在学习类和对象,对于11.3.2中的例子有一个疑问,希望有大神能解答下:
class Potato:
def _ _init_ _(self,name):
self.name = name
def kick(self):
print("我叫%s,嗷~谁踢我?!"% self.name)
请问为什么def kick(self)中不需要name参数了呢?
当我们定义一个类时,我们可以在类中定义各种方法来操作和访问对象的属性。在Python中,类的方法的第一个参数通常是self,它代表类实例本身。
在这个例子中,我们定义了一个名为Potato的类。该类有两个方法:__init__()和kick()。
__init__() 方法是一个特殊方法,在创建一个类的实例时会自动调用。它用于初始化对象的属性和执行其他必要的操作。在这个例子中,我们通过 __init__() 方法来初始化 Potato 类的 name 属性。
__init__() 方法接受两个参数:self 和 name。其中,self 表示当前类的实例对象,name 是我们传入的参数。通过 self.name = name 这一语句,我们将传入的 name 参数赋值给实例对象的 name 属性。
接下来,我们看到 kick() 方法。这个方法没有显式地传入 name 参数,而是通过 self.name 来获取实例对象的 name 属性值。
在 Python 中,类的方法访问实例属性时,需要使用 self.属性名 的方式。self 代表当前实例对象本身,通过 self 可以访问实例的属性和方法。
所以,当我们创建一个 Potato 实例对象并命名为 potato,比如 potato = Potato("小土豆"),在这里我们将 "小土豆" 作为参数传递给 __init__() 方法,并且该参数会被保存到实例的 name 属性中。
当我们调用 potato.kick() 方法时,kick() 方法内部可以通过 self.name 访问到实例对象的 name 属性值。这样,方法就能够打印出相应的结果:"我叫小土豆,嗷~谁踢我?!"。
所以,在 kick() 方法中不需要显式地传入 name 参数,而是通过 self.name 间接地访问实例对象的属性值。这样,我们可以方便地在类的其他方法中使用实例的属性。
如果输入:
name的属性值就是
求最佳答案
|
|