如果已經提出並回答了此問題,請道歉。 我需要做的是非常簡單的概念,但不幸的是,我一直無法在網上找到答案。使用自定義名稱創建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