1

这是一个更大程序的一部分,应该发生的是 Score.print_points() 行调用 Score 类中的 print_points() 函数,然后打印 self.points 变量。

class Score(object):

    def __init__(self, points):
        self.points = points

    def set_score(self):
        self.points = 100

    # This is going to be used for something else   
    def change_score(self, amount):
        self.points += amount

    def print_points(self):
        print self.points

Score.print_points()

但是,当我运行它时,我收到了这个错误:

Traceback (most recent call last):
  File "sandbox.py", line 15, in <module>
    Score.print_points()
TypeError: unbound method print_points() must be called with Score instance as first argument (got nothing instead)

我真的不熟悉行话,但我认为我是用 Score 实例作为我的第一个参数调用的?

至于第二部分:有没有一种方法可以打印 self.points 而无需在 Score 类中创建单独的函数来这样做?

4

1 回答 1

3

问题是您在类本身上调用 print_points,而不是该类的实例。

尝试

>>> score = Score(0)
>>> score.print_points()
0

对于你的第二个问题:

至于第二部分:有没有一种方法可以打印 self.points 而无需在 Score 类中创建单独的函数来这样做?

你可以做

>>> print score.points
于 2013-09-30T10:46:24.470 回答