在Python中运行时创建函数

时间:2012-04-13 05:49:35

标签: python metaprogramming

是否可以做这样的事情:

def fns(Names, Args, Bodies):
    for i in range(len(Names)):
        exec("def " + Names[i] + "(" + Args + "): " + Bodies[i])

所有函数都应该在全局范围内,调用代码的数量不应该取决于函数的数量。

1 个答案:

答案 0 :(得分:2)

不是一个好主意..然而

for i in range(len(Names)):
    exec("def " + Names[i] + "(" + Args + "): " + Bodies[i]) #create locally
    globals()[Names[i]] = locals()[Names[i]]                           #assign to global space

但我不建议这样做......那是未经测试的代码