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

标签 python class global instances

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

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

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/

相关文章:

python - 如何在 Pandas 中整理(融化)数据并保留所有其他列?

javascript - 如何解决语法错误: Unexpected token = after importing a class?

python |脚本执行后如何使局部变量成为全局变量

javascript - 在严格模式下获取未知环境中全局对象的引用

c - 为什么 gdb "set"命令不能识别全局变量,必须添加 "::"或 "variable"?

python - Pip 不会在 virtualenv 中安装包

python - numpy.zeros_like() 中 subok 选项的用途和用途是什么?

Java - 使用扫描仪读取特定类型

python - 通过图形切割使用单点类注释进行分割?

java - Netty IO 从类外部写入服务器