In Learn Python The Hard Way exercise 43,类中有一个名为quips
class Death(Scene):
quips = [
"You died. You kinda suck at this.",
"Your mom would be proud...if she were smarter.",
"Such a luser.",
"I have a small puppy that's better at this."
]
def enter(self):
print Death.quips[randint(0, len(self.quips)-1)]
exit(1)
为什么不分配给自己?我无法理解我在Reddit上看到的解释:
"请注意,缺少对self
的引用?这意味着
没有涉及实例。这是该类的属性。这就像写在蓝图而不是在你家的墙上。班级/蓝图"拥有" quips
属性。该属性是一个无趣的list
对象。由于名称解析,实例也可以引用此对象:"
答案 0 :(得分:2)
列表Death.quips
是类本身的成员 ,而不是该类的某个实例。由于没有涉及实例,因此定义中也没有提到self
。
答案 1 :(得分:1)
您知道可以使用self.quips
和Death.quips
访问该列表。让我们说你住在妈妈的地下室里。无论它可能在那里,它真的是你的吗?不,但你仍然可以访问它。你和你妈妈都可以进入地下室,但它实际上属于你的妈妈。同样,当实例对象和类属于类时,它们都可以访问列表。