我是新人,请多多包涵。下面是我的代码:
class Player():
name = "UnknownName"
stren = 10
dex = 10
con = 10
intel = 10
wis = 10
cha = 10
def randAssign(self):
global stren, dex, con, intel, wis, cha
stat_List = [stren, dex, con, intel, wis, cha]
for stat in stat_List:
r_1 = random.randint(1,6)
r_2 = random.randint(1,6)
r_3 = random.randint(1,6)
r_4 = random.randint(1,6)
stat_Val = r_1 + r_2 + r_3 + r_4 - min(r_1, r_2, r_3, r_4)
stat = stat_Val
randAssign 是 Player() 中的一种方法,我试图随机设置玩家的统计数据,并且需要在激活 randAssign() 时重写类变量。由于某种原因,使用 global 会传递以下错误:
NameError: name 'stren' is not defined.
使用 Nonlocal 会产生此错误:
SyntaxError: no binding for nonlocal 'stren' found
如果没有全局或非局部,它就不会重写Player()'s
变量。我已经做了十几次迭代,从完全错误到“我认为这会起作用,但它不起作用”,需要帮助。