我想使用函数将多个实例的相同变量更改为相同的东西。我想用它来做这样的事情:
Class Player:
arbitrary value = 90
我创建了多个玩家并将它们放在一个列表中:
playerlist = [player1,player2,player3]
def changevars(variable,newvariable):
for x in playerlist:
x.variable = newvariable
但是当然我遇到了未声明问题的变量'。 那么做这样的事情的正确方法是什么?
答案 0 :(得分:0)
使用带setattr
的字符串:
def changevars(players, varname, value):
for player in players:
setattr(player, varname, value)
然后您可以使用以下内容:
changevars(player_list, "arbitrary_value", 5)
我将玩家列表作为参数而不是全局变量。这样,您可以在所有玩家或仅在某些玩家上更改变量。除此之外,全局变量通常被认为是不好的做法。