python中的@


一、函數修飾符

  '@' 用做函數的修飾符,可以在模塊或者類的定義層內對函數進行修飾,

  出現在函數定義的前一行,不允許和函數定義在同一行

  一個修飾符就是一個函數,它將被修飾的函數作為參數,並返回修飾后的同名函數其他可調用的東西?

  示例:  

 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

 結果

1--- (10,)
2== 285
sum_a
3= 285
***************
3= 285

  可以看出,他是先執行修飾器函數,然后有return fn的時候,修飾器下的函數才是生效的,否則函數sum_a 是沒有結果的。

 

 

 

 

 

 

 

 

 

 

 

 

--------2016-7-19 17:21:15--

  source:【1】python中的@ 符號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM