Python 是否使用在函数内部创建的实例?

Python 是否使用在函数内部创建的实例?,python,class,global,instances,Python,Class,Global,Instances,我试图创建一个创建类的函数,并将这些类附加到列表中 当我运行程序时:我得到以下错误: NameError:未定义名称“jackie” 这意味着只能在函数内部使用实例。如何使其全球化?我尝试了global eval('jackie'),但没有成功 population =[] class person():pass def createdarwin(name): global population darwin=p.image.load('darwin.png') vars

我试图创建一个创建类的函数,并将这些类附加到列表中

当我运行程序时:我得到以下错误:

NameError:未定义名称“jackie”

这意味着只能在函数内部使用实例。如何使其全球化?我尝试了
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()