Car*_*ans 2 python variables instance
当我发现这个错误时,我试图做一些代码.我首先player用namea param1和a 定义类param2.当我运行该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())))
Run Code Online (Sandbox Code Playgroud)
所以基本上,我的问题是python不允许我在函数内创建类的实例.我搜索了很多,但我还没找到我要搜索的内容.提前致谢!
您可以使用变量名player的for player in playerList,但你的类也被命名player.由于您为该名称赋值(在for循环中),因此Python将其视为局部变量,因此您无法访问该名称的全局类.
最好的解决方案是将类名更改Player为大写字母P. Python中的约定是类以大写字母开头.
(错误发生在前一行的原因是Python在解析函数时决定哪些变量是本地的.由于你用作playerfor循环的目标,它被标记为本地,但是当你第一次访问它时,尝试访问该类时,没有为该局部变量赋值.)
| 归档时间: |
|
| 查看次数: |
3027 次 |
| 最近记录: |