0
讓我們舉一個例子。 如果我們有一個函數def f(func): ...
,其中func
是一個函數對應的參數。 如果我們打電話f(merge)
,我想返回另一個函數名稱(不是文本)merge_ext
然後可以執行。如何從另一個生成新的函數名稱
我已經確定了一個事實,即函數名col是用語法my_function.__name__
提取的,但是如何生成可以用作函數的新函數名?
讓我們舉一個例子。 如果我們有一個函數def f(func): ...
,其中func
是一個函數對應的參數。 如果我們打電話f(merge)
,我想返回另一個函數名稱(不是文本)merge_ext
然後可以執行。如何從另一個生成新的函數名稱
我已經確定了一個事實,即函數名col是用語法my_function.__name__
提取的,但是如何生成可以用作函數的新函數名?
看起來你好過裝修工。
裝飾器是一個函數,它接受一個函數作爲參數,並返回一個函數。簡單的例子:
def simple_decorator(func):
return func
您可以用@
語法使用它:
@simple_decorator
def decorated_function(some_arg):
return something
在這種情況下,調用function
將調用呼叫simple_decorator(function)
返回的功能,這意味着你不能訪問原單function
了。
但是這也可以這樣表示:現在
def no_yet_decorated_function(some_arg):
return something
decorated_function = simple_decorator(no_yet_decorated_function)
,您可以同時訪問你的函數。
'eval'會將文本更改爲函數調用,但您可能需要錯誤處理以確保該函數存在,並且您應該可以清理輸入。 – TLOwater
爲什麼你不能只是'merge_ext = f(merge)'? –
合併在變量func中,它可能是另一個值,所以我們必須使用func。怎麼樣? –