为什么没有' self'在这段代码中的死亡课程?

时间:2015-03-28 12:56:08

标签: python class

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对象。由于名称解析,实例也可以引用此对象:"

2 个答案:

答案 0 :(得分:2)

列表Death.quips是类本身的成员 ,而不是该类的某个实例。由于没有涉及实例,因此定义中也没有提到self

答案 1 :(得分:1)

您知道可以使用self.quipsDeath.quips访问该列表。让我们说你住在妈妈的地下室里。无论它可能在那里,它真的是你的吗?不,但你仍然可以访问它。你和你妈妈都可以进入地下室,但它实际上属于你的妈妈。同样,当实例对象和类属于类时,它们都可以访问列表。