首页 > 解决方案 > 如何使用变量命名函数?

问题描述

如何使用列表中的字符串设置函数的名称?

listname = ["first", "second"]

def listname[0]():
    (...)

之后出现错误

SyntaxError: Invalid Syntax

有没有办法做到这一点?

标签: python

解决方案


这可以使用 pythoncompile()exec()

您可以将函数代码存储在字符串中,例如:

generic_func_code="""\
def func_name(x):
    return x+1"""

str.replace()然后使用并执行新创建的字符串替换函数名称。

func_code=generic_func_code.replace('func_name', listname[0])
exec(func_code)
# function named listname[0] has been created

然而,正如@Ture Pålsson所指出的,这可能不是一个好主意


推荐阅读