0
python的裝飾者是一種甜蜜的糖。我用它來宏這樣的函數定義。python是否支持運行時裝飾器?
@logger(level="debug")
foo(var)
或
@repeat(3)
foo(var)
他們翻譯foo的功能解析時間,宏觀相似。但我正在尋求在運行時使用裝飾的自由。
foo(var)
或(注 - 在執行時富(),而不是定義富應用裝飾())
@logger(level="debug")
@repeat(5)
foo(var)
Q1)是否蟒蛇給這樣的自由正式?我不喜歡使用解決方法,因爲我將來會添加/使用更多裝飾器。 Q2)如果不是,下面是讓自由發生的直接方式嗎?如何處理* args和** kwargs?
temp_foo = logger(level="debug", repeat(5, foo, *args))
temp_foo(var)
Q3)python是否有建議支持運行時裝飾器?或者可能有一些想法?
謝謝
裝飾器在運行時在Python評價:http://stackoverflow.com/questions/739654/how-can-i-make-a-chain-of-function-decorators-in-python也許不在Java中。 – User
我之前閱讀過739654。我應該給出更具體的運行時解釋。我期望的RUNTIME執行函數foo(),而不是定義它。 –