python一些語法糖用法


@修飾符

  '@'符號用作函數修飾符是python2.4新增加的功能,修飾符必須出現在函數定義前一行,不允許和函數定義在同一行。也就是說@A def f(): 是非法的。 只可以在模塊或類定義層內對函數進行修飾,不允許修修飾一個類。一個修飾符就是一個函數,它將被修飾的函數做為參數,並返回修飾后的同名函數或其它可調用的東西。

  本質上講,裝飾符@類似於回調函數,把其它的函數(暫且稱為目的參數)作為自己的入參,在目的函數執行前,執行一些自己的操作,比如:計數、打印一些提示信息等,然后返回目的函數。下面列舉一個簡單的例子。

import time

def time(func):
    print(time.ctime())
    return func()
    
@time  # 從這里可以看出@time 等價於 time(xxx()),但是這種寫法你得考慮python代碼的執行順序
def xxx():
    print('Hello world!')

運行結果:
Wed Jul 26 23:01:21 2017
Hello world!

*args和**kwargs

  當函數的參數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有key值。這兩個是python中的可變參數。*args表示任何多個無名參數,它是一個tuple;**kwargs表示關鍵字參數,它是一個dict。並且同時使用*args和**kwargs時,必須*args參數列要在**kwargs前。例如:foo(name,age,date=newdate,birthday=date) 

super()


免責聲明!

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



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