Python 中的@修飾符作用


在Python 2.4以上的的函數中偶爾會看到函數定義的上一行有@functionName的修飾,這一下這個語法細節,其實這有點像C語言帶參數的宏操作,解釋器讀到這樣的修飾之后,會先解析@后的內容,直接就把@下一行的函數或者類作為@后邊的函數的參數,然后將返回值賦值給下一行修飾的函數對象。

def funA(a):
    print 'funA'

def funB(b):
    print 'funB'

@funA
@funB
def funC():
    print 'funC'

result:

>>> ================================ RESTART ================================
>>> 
funB
funA

可以這樣思考,return funA(funB(funC))

看到這里就明白了吧,從第一個函數修飾符開始,自下而上做參數傳遞,這樣實際是使用了約定的函數修飾符達到函數嵌套的目的。記得沒錯Java中SSH也有這樣的用法哦。

 

轉自: http://www.linuxidc.com/Linux/2014-04/99915.htm


免責聲明!

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



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