2

当我发现这个错误时,我正在尝试做一些代码。我首先用a和定义player类。当我运行该函数并尝试在其中创建 类的实例时,出现错误。这是我的代码:nameparam1param2gameplayerUnboundLocalError

class player(object):

    def __init__ (self, name, param1 = None, param2 = None):

        self.param1 = param1
        self.param2 = param2
        self.name = name

def game(n = int(raw_input('How many players? '))):

    playerList = [] 

    for x in range(n):
        playerList.append(player(raw_input('Player %i: ' %(x+1))))

    for player in playerList:
        player.param1 = int(raw_input('%s, how many do you predict? ' %(player.name.upper())))

所以基本上,我的问题是python不允许我在函数中创建类的实例。我已经搜索了很多,但我没有找到我要搜索的内容。提前致谢!

4

1 回答 1

6

您在 中使用变量名playerfor player in playerList但您的类也被命名为player. 由于您为该名称分配了一个值(在 for 循环中),Python 将其视为局部变量,因此您无法访问该名称的全局类。

最好的解决方案是将类名更改Player为大写的 P。Python 中的约定是类以大写字母开头。

(上一行出现错误的原因是Python在解析函数的时候决定了哪些变量是本地的。由于你player作为for循环的目标,它被标记为本地,但是在你第一次访问它的时候,当试图访问该类,没有为该局部变量分配任何值。)

于 2013-07-07T19:20:30.087 回答