关于类里的__init__函数
class Mystuff(object):def __init__(self):
self.tangerine="And now a thousand years between"
def apple(self):
print("I am an apple.")
thing=Mystuff()
thing.apple()
print(thing.tangerine)
①不太理解这个self,在下面的实例化里,thing就替换了self么
②还有self.tangerine="And now a thousand years between"是在干什么
③实例化里为什么括号里是空的
这是一个非常好的问题。这里的代码是在创建一个Python类,这个类中有一个初始化方法 __init__ 和一个叫做 apple 的方法。下面我逐个回答你的问题:
① self 是一个习惯性的名字,它是一个指向实例本身的引用。在类的方法中,我们使用这个引用来访问或操作类的属性。当你创建一个类的实例,如 thing = Mystuff() ,Python会自动将 thing 作为 self 传递给 __init__ 方法。
②self.tangerine = "And now a thousand years between" 这行代码在做的是:当你创建 Mystuff 的一个实例时,它会自动创建一个叫做 tangerine 的属性,并给它赋值为"And now a thousand years between"。你可以通过 thing.tangerine 来访问这个属性的值。
③Mystuff() 的括号里是空的,是因为在这个例子中, Mystuff 类的 __init__ 方法没有定义任何其他的参数除了 self 。 self 参数不需要你在实例化时传递,Python会自动处理。如果 __init__ 方法定义了其他参数,那么你在实例化时需要传递对应的值。例如:
class Mystuff(object):
def __init__(self, value):
self.tangerine = value
thing = Mystuff("A new value")
print(thing.tangerine)# 输出:A new value
在这个修改后的例子中,我们在 __init__ 方法中定义了一个新的参数 value ,在创建 Mystuff 的实例时,需要传递一个值给这个参数。 1. 在定义类中,self 表示该类实例化后的对象本身。在这个实例化后的对象中,self 将指向当前对象本身,因此 self.tangerine 表示 Mystuff 类中的 tangerine 成员变量。
在这个代码中,当我们使用 thing=Mystuff() 来创建一个名为 thing 的 Mystuff 对象时,self 就代表这个被创建出来的 thing,thing 中就有了 tangerine 这个成员变量。
2. `self.tangerine="And now a thousand years between"` 是在给当前的对象添加一个名称为`tangerine`的属性并赋初值 "And now a thousand years between"。
3. `Mystuff()` 括号里没有传入任何参数,是因为 Mystuff 类定义了 `__init__()` 方法,该方法已经包含了 `self`,也不需要其他参数输入。调用 `Mystuff() ` 方法即可返回一个实例化后的对象。
class Mystuff(object):
def __init__(self, value):
self.tangerine = value
thing = Mystuff("A new value")
print(thing.tangerine)# 输出:A new value
求最佳答案{:10_254:} sfqxx 发表于 2023-6-14 22:36
1. 在定义类中,self 表示该类实例化后的对象本身。在这个实例化后的对象中,self 将指向当前对象本身,因 ...
:dy:
页:
[1]