0

这是到目前为止的代码:

class Player:
    hand = []
    def take(self, card):
        hand.append(card)

这是我调用该函数时的错误:

    hand.append(card)
NameError: global name 'hand' is not defined

我试过让它像这样全球化:

class Player:
    hand = []
    def take(self, card):
        global hand
        hand.append(card)

它没有帮助。

4

2 回答 2

1

尝试通过“self”指针引用变量“hand”:

class Player:
    hand = []
    def take(self, card):
        self.hand.append(card)

在 Python 中,成员函数中的 self 指针始终包含调用该函数的类的实例的值,从而允许您编辑该实例的成员。

于 2013-01-27T03:27:18.310 回答
0

正是奎里奥姆所说的。

当然,除非您打算在该类的所有实例中使用一个“手”变量(即全局变量,这是 Python 认为您正在尝试做的事情,但这不是很好的编码实践)。在这种情况下,你会这样做:

hand = []

class Player:
   def take(self, card):
      hand.append(card)

但我假设这不是你想要做的,因为它看起来像扑克类型的场景。

于 2013-01-27T03:33:35.107 回答