裝飾函數的最佳方式是什麼,但只能在本地範圍內。例如,我們有以下幾點:Python:只在本地裝飾函數的最佳方法
def a():
do stuff
b()
do stuff
我想打一個功能c()
,做同樣的stuff
但裝飾B上它增加了一些額外的東西。我發現了一個辦法做到這一點,但它改變B()全球:
def c():
global b
b = decorator(b)
a()
有沒有辦法做到這一點,但沒有改變全局函數B?
'b = decorator(b)' - 我認爲這覆蓋了你的全局函數'b'。也許把它分配給另一個變量就是你要找的東西:'x = decorator(b)'。 – ikkuh
不能是x,因爲我想在c()內部有不同的b函數,所以當我在c()內調用()時,a()是不同的,但只有當我在c()中調用它時() – edgarstack