我有一個可以接收 3 個引數的函式。OnlyX是強制性的,我可以像這樣寫這個函式
def foo(X, A=None, B=None):
pass
但我想強制用戶呼叫這個函式,明確傳遞引數
foo(X=1, A=2, B=3)
foo(1, 2, 3) # Error
有可能為此做一個裝飾器嗎?
@explicitarguments
def foo(X, A=None, B=None):
pass
uj5u.com熱心網友回復:
如果可以修改函式定義,參考這個問題。
用于修補現有函式的最小裝飾器如下所示:
def explicitarguments(f):
def f_new(**kwargs):
return f(**kwargs)
return f_new
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370227.html
標籤:Python 功能 争论 python-装饰器
