马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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 的实例时,需要传递一个值给这个参数。
|