我正在尝试创建一个创建类的函数,并将这些类附加到列表中。
当我运行该程序时:出现以下错误:
NameError: name 'jackie' is not defined
这意味着只能使用函数内部的实例。我怎样才能使其成为全局性的?,我尝试了 global eval('jackie')
但不起作用。
population =[]
class person():pass
def createdarwin(name):
global population
darwin=p.image.load('darwin.png')
vars()[name]=person(darwin)
population.append(name)
def main():
createdarwin('jackie')
for i in population:
eval(i).update()
最佳答案
如果您想要变量命名的变量,请使用字典。那么你就不需要vars()
,也不需要eval()
:
population = {}
class Person(object):
pass
def create_darwin(name):
darwin = p.image.load('darwin.png')
population[name] = person(darwin)
def main():
create_darwin('jackie')
for name in population:
population[name].update()
关于python - 使用在函数内部或外部创建的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089012/