python中的@

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)
View Code

 結果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

相關文章
相關標籤/搜索