2015-09-15 49 views
2

python中的裝飾函數或方法非常棒。變量是否可以修飾?

@dec2 
@dec1 
def func(arg1, arg2, ...): 
    pass 
#This is equivalent to: 

def func(arg1, arg2, ...): 
    pass 
func = dec2(dec1(func)) 

我想知道如果在Python中裝飾變量是可能的。

@capitalize 
@strip 
foo = ' foo ' 

print foo # 'FOO' 
#This is equivalent to: 
foo = foo.strip().upper() 

我找不到任何關於此主題的內容。

+0

爲什麼不簡單地'foo ='FOO''? –

+1

[我如何裝飾callable類的實例?](http://stackoverflow.com/q/24122444/2301450) – vaultah

+0

@Maciej戈這不是這個問題的關鍵。 – taesu

回答

4

不,裝飾器語法只對函數和類有效。

就值傳遞給函數:

foo = capitalize(strip(' foo ')) 

或者由結果替代變量:

foo = ' foo ' 
foo = capitalize(strip(foo)) 

裝飾存在,因爲你不能只包裹在一個函數或類聲明函數調用;簡單變量你可以

+0

我想他們想嚴格遵守方法,然後。 – taesu

相關問題