2011-04-21 80 views
0

我試圖去了解裝修的值,和我有分享價值的一個問題,因爲我不能改變它:共享使用裝飾

def my_decorator(func1,func2) : 

    def wrapper() : 
     a=0 
     func1() 
     func2() 
     print(a) 

    return wrapper 


def first_lazy_function() : 
    a=1 
    print(a) 

def second_lazy_function() : 
    a=2 
    print(a) 




functionDecorator=my_decorator(first_lazy_function,second_lazy_function) 

functionDecorator() 

我的輸出是:

1 
2 
0 

相反:

1 
2 
2 

我必須做的就是一個預期值?

回答

3

你的問題是,你正在使用三個局部變量稱爲a,不叫a
一個全局變量嘗試第一行腳本a=0,然後在每一個功能做global a然後a=1a=2