1、函數修飾符html
'@' 用作函數的修飾符,能夠在模塊或者類的定義層內對函數進行修飾,python
出如今函數定義的前一行,不容許和函數定義在同一行ide
一個修飾符就是一個函數,它將被修飾的函數做爲參數,並返回修飾後的同名函數或其餘可調用的東西?函數
示例: spa
1 def square_sum(fn): 2 def square(*args): 3 print "1---", args 4 n = args[0] 5 # return n*(n-1)*(2*n-1)/6 6 print "2==", n*(n-1)*(2*n-1)/6 7 print fn.__name__ 8 fn(n*(n-1)*(2*n-1)/6) 9 print "*"*15 10 return fn(n*(n-1)*(2*n-1)/6) 11 return square 12 13 14 @square_sum 15 def sum_a(a): 16 print "3=", a 17 18 sum_a(10)
結果code
1--- (10,) 2== 285 sum_a 3= 285 *************** 3= 285
能夠看出,他是先執行修飾器函數,而後有return fn的時候,修飾器下的函數纔是生效的,不然函數sum_a 是沒有結果的。htm
--------2016-7-19 17:21:15--blog
source:【1】python中的@ 符號get