当我发现这个错误时,我正在尝试编写一些代码。我首先使用 name
、param1
和 param2
定义了 player
类。
当我运行 game
函数并尝试创建 player
的实例时
类里面,我得到了 UnboundLocalError
错误。这是我的代码:
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 不允许我在函数内创建类的实例。我搜索了很多,但没有找到我要搜索的内容。 提前致谢!
最佳答案
你在for player in playerList
中使用了变量名player
,但是你的类也被命名为player
。由于您为该名称分配了一个值(在 for 循环中),Python 将其视为局部变量,因此您无法访问该名称的全局类。
最好的解决方案是将类名更改为带有大写 P 的 Player
。Python 中的约定是类以大写字母开头。
(错误出现在前面一行的原因是Python在解析函数时决定了哪些变量是本地的。因为你使用player
作为for循环的目标,它被标记为本地,但在您第一次访问它时,当您尝试访问该类时,没有为该局部变量分配任何值。)
关于python - 未绑定(bind)本地错误 : local variable 'player' referenced before assignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515430/