Python:动态创建变量

时间:2018-02-01 16:36:35

标签: python python-3.x

我已经尝试在learnpython.org动态创建变量,可以按如下方式创建:

food = 'bread'
vars()[food] = 'asdasd'
print (bread)

它将打印出" asdasd"。但是,当我尝试使用我的python3时,它会给我一个错误(NameError:name' bread'未定义)。我怎么能用python3做到这一点?

1 个答案:

答案 0 :(得分:3)

在python中我们倾向于避免使用这种动态变量,但无论如何你的答案是:

def main_function(action):
    return { '1': func_a, '2': func_b, '3': func_c, '4': func_d}.get(action)()

def func_a():
    return "a"
def func_b():
    return "b"
def func_c():
    return "c"
def func_d():
    return "d"

if __name__=="__main__":
   print(main_function('1'))

更好的方法是使用词典。

a = 'test'
globals()[a] = 123
print(test)