1
我有3個裝飾器,並希望將它們分別應用到一個函數,以創建3個不同版本的函數。例如:不同的裝飾器相同的功能
@decorator_1
def foo1():
blahblah
@decorator_2
@decorator
def foo2():
blahblah
@decorator_3
def foo3()
blahblah
的foo1
,foo2
和foo3
的內容是完全相同的。問題是我必須寫出3次函數。當然,我可以將blahblah
放入另一個函數spam
,並在這三個函數中調用它。但我仍然需要創建3個獨立的功能,並且需要撥打spam
3次。有沒有更好的方法可以進一步減少這種冗餘?
是否可以保持裝飾器語法? – RNA
@RNA您可以嵌套它,即將'foo1'定義爲'return foo()'並對其進行裝飾。但這很醜陋而且效率低下。除此之外,沒有這種方式。 – freakish