天天看點

Python 函數總結

聲明和調用函數:

    聲明函數的方法是用def關鍵字,函數名及小括号裡面的參數清單。

    調用函數:給出函數名和一小對括号,并放入所需參數:

關鍵字參數:

    可以省去固定順序的需要,關鍵字參數通過 “鍵=值”的形式指定,例如:

預設參數:

    對參數提供預設值,那可以不必向其傳遞變量值,

比如:

注意:預設參數和關鍵字參數差別:

    關鍵字參數隻能用于“函數調用”,預設參數用于“函數聲明”;對于預設函數,<b>所有必須提供的參數一定要出現在任何可選參數之前</b>,不能混在一起活着颠倒順序。

常見錯誤:

1、  将清單和字典作為預設參數;

由于清單和字典 都是可變變量,這樣的話看哪呢過會很危險,特别是當他們連續的穿過多個函數調用時,

def func(arg=[]):

arg.append(1)

print arg

func()

[1]

[1,1]

[1,1,1]

函數在對象中的引用:

    在Python 裡你可以把函數(或方法)當做和其他對象一樣使用,可以放在容器裡,指派給其他變量,做為參數傳遞給函數等。

    當調用函數的時候才會加上小括号,把它當做變量或者對象傳送時,隻需要函數名字就可以啦

匿名函數:

建立的方法是使用lambda關鍵字,它由一個表達式組成,

文法:lambda  args:表達式   執行的時候 lambda 會傳回一個可立即使用的函數對象,可以将其儲存為一個變量,或者一個回調函數以便稍後執行.

*args  和 **kwargs

    無論是函數調用韓式聲明,單個星号表示 有元祖或者清單作為參數,兩個星号則代表參數為字典。

函數調用裡的 *  和**

将參數資訊放到元祖裡面:

調用時:

簡潔點的寫法:

如果:

是以函數調用就變成了:

聲明函數中的 *  和  **

這個可以讓python支援變長參數:

不管傳遞多少參數,都可以處理,all_sales是一個包含所有元素的元祖,

注意:在函數裡定義變長函數時,所有必須出現的參數一定先出現,然後是預設值,最後是變長參數;

使用雙星号的方式:

這樣将至少接受初始三個參數

本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/1135482,如需轉載請自行聯系原作者