如果已经提出并回答了此问题,请道歉。 我需要做的是非常简单的概念,但不幸的是,我一直无法在网上找到答案。使用自定义名称创建Python动态函数
我需要在运行时用自定义名称在Python(Python2.7)中创建动态函数。每个函数的主体也需要在运行时构造,但对于所有函数来说(几乎)是相同的。
我从名字列表开始。
func_names = ["func1", "func2", "func3"]
注意,FUNC_NAME列表可以保存任意名称的列表,所以名称将不仅仅是FUNC1,FUNC2,FUNC3,....
我想要的结果是:
def func1(*args):
...
def func2(*args):
...
def func3(*args):
...
我需要这样做的原因是,每个函数名称都对应于一个测试用例,然后从外部调用该测试用例。
更新:没有用户输入。我正在绑定一个更大的模块的两端。一端确定测试用例是什么,另一方面是填充测试用例名称列表。另一端是函数本身,它们必须与测试用例的名称进行1:1映射。所以我有测试用例的名称,我知道我想对每个测试用例做什么,我只需要创建具有测试用例名称的函数。由于测试用例的名称是在运行时确定的,所以基于这些测试用例的功能创建也必须在运行时。
更新:我也可以将这个自定义命名函数包装在类中,如果这样会让事情变得更容易。
我可以硬编码函数的内容(因为它们几乎是相同的)在一个字符串中,或者我可以将它从之前定义的基类中取出。只需要知道如何用这个内容填充函数。
例如:
func_content = """
for arg in args:
print arg
"""
由于提前,
马赫迪
没有用户输入。我正在绑定一个更大的模块的两端。一端确定测试用例是什么,另一方面是填充测试用例名称列表。另一端是函数本身,它必须与测试用例的名称进行1:1映射。所以我有测试用例的名称,我知道我想对每个测试用例做什么,我只需要创建具有测试用例名称的函数。由于测试用例的名称是在运行时确定的,所以基于这些测试用例的功能创建也必须在运行时。 – mahdiolfat