[英]Decorator function using *args and **kargs as parameters for its __call__ method,
我目前正在使用一個裝飾函數,如果在裝飾器類中將某個 bool 設置為 True,該函數應該檢查函數的注釋。 我有點困惑的是裝飾器函數的__call__
方法頭:
def __call__(self, *args, **kargs):
及其參數列表。
我知道它的參數*args
和**kargs
用於提供給函數的參數,但是在我正在處理的問題中,我必須調用原始函數(這是從裝飾器創建的實例對象中的一個屬性名為_f
類)。
我將如何使用提供給裝飾函數的參數來調用_f
? 我應該檢查args
/ kargs
是否為空並self._f(args)
空參數調用self._f(args)
/ self._f(kargs)
嗎?
當你裝飾方法時:
class Foo:
@someDecorator
def my_method(self, x, y):
...
它實際上還不是一種方法; 這只是一個函數。 在你的裝飾器中,你這樣對待它:
def someDecorator(f):
def _(*args, **kwargs):
...
return f(*args, **kwargs)
return _
當_
被調用時, self
將包含在*args
參數中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.