使用在函数内部或外部创建的实例?

2024-06-25 06:49:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

运行程序时:出现以下错误:

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()

Tags: 函数name程序列表isdef错误eval
1条回答
网友
1楼 · 发布于 2024-06-25 06:49:03

如果您想要可变名称的变量,那么使用字典代替。那么你就不需要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()

相关问题 更多 >