'@'符號用做函數修飾符是python2.4新增長的功能,修飾符必須出如今函數定義前一行,不容許和函數定義在同一行。也就是說@A def f(): 是非法的。 只能夠在模塊或類定義層內對函數進行修飾,不容許修修飾一個類。一個修飾符就是一個函數,它將被修飾的函數作爲參數,並返回修飾後的同名函數或其它可調用的東西。python
例如:函數
def test02(a): print'test02' @test02 def test(a,b): print 'test' print a+b
結果:ui
在Python官方文檔中解釋不少,可是看到代碼就會很是清晰spa
'@dec2 @dec1 def func(arg1, arg2, ...): pass This is equivalent to: def func(arg1, arg2, ...): pass func = dec2(dec1(func))
Python @property屬性 能夠將定義的函數當作屬性來訪問,提供更加友好的訪問方式。code