Python函式的基礎內容
阿新 • • 發佈:2018-11-19
函式形式
def test(函式名)(x, y, z)(引數):
內部程式碼塊
return(s)(返回值)
函式文字說明
函式內的引數分為形參和實參,在呼叫函式時輸入的實參將傳給形參來執行函式。在函式執行完畢後形參佔的記憶體立即被釋放,即函式結束後引數的賦值內容消失。
設定函式是為了實現某一個一個功能,函式遇到return立即結束。
Python中的過程就是沒有返回值的函式。
函式的優點:1.程式碼重用 2.保持一致性,程式碼易維護。 3.可擴充套件性強
當返回值的個數等於0時,返回值為None。當返回值的個數等於1時,返回的值為該object。當返回值的個數大於1時,返回的值為這些object組成的元組,即返回一個tuple。
位置引數和關鍵字引數
傳引數的方式分為傳位置引數和傳關鍵字引數,不論以哪種方式傳入引數都必須和函式要求的引數一一對應,在位置引數和關鍵字引數混合使用時關鍵字引數必須在位置引數右邊。
傳入位置引數(必須按照順序):
def test(x, y, z):
print(x)
print(y)
print(z)
test(1, 2, 3)
傳入關鍵字引數(無需考慮順序):
def test(x, y, z):
print(x)
print(y)
print(z)
test(y=2, x=1, z=3)
傳入混合引數:
def test(x, y, z):
print(x)
print(y)
print(z)
test(1, 2, z=3)
預設引數
在設定函式式設定預設值。
def handle(x, y="default"):
print(x)
print(y)
handle(1)
handle(1, 2)
** *aggs、***wargs **
在設定引數時加入 * args可以保證傳入引數不限個數,並且會以元祖的方式去處理屬於args的內容,並且在呼叫函式時支援輸入列表,列表前加 * 代表將列表的每一個元素作為元組的元素,不加 * 會將列表作為元組的一個元素處理。
在設定函式時加入**wargs也可以保證傳入引數不限個數,並且會以字典的方式處理屬於kwargs的內容,並且在呼叫函式時支援輸入字典。
在*args和kwargs同時使用時,*args放在kwargs的左邊,表示支援一切形式的輸入。
def test(x, *args):
print(x)
print(args)
test(1, 2, 3, 4, 5)
test(1, [2, 3, 4, 5])
test(1, *[2, 3, 4, 5])
def test(x, **kwargs):
print(x)
print(kwargs)
test(1, y=2, z=3)
test(1, **{"y" :2, "z" :3})
def test(x, *args, **kwargs):
print(x)
print(args)
print(kwargs)
test(1,2,3,4,y=2,z=3)
test(1,*[2, 3, 4], **{"y" : 2, "z" : 3})