python3 函數的參數

0. 概要

本文總結了函數傳參的方式,便於使用時快速查詢python

本文總結自廖雪峯的python3教程數組

函數的命名不能以數字開頭,且只能包含字母、數字、下劃線。與變量相同。bash

1. 位置參數

至關於一個佔位,傳參時不須要指定參數名函數

def testFunc(x):
    return x * x

def testFunc2(x, y):
    return x + y
複製代碼

調用:ui

>>>testFunc(6)
36
>>>testFunc2(6, 7)
13
複製代碼

2. 默認參數

定義函數時給參數設置一個默認值,當傳參時沒有傳入參數則自動賦予默認值做爲參數spa

格式特色:「默認參數」必須放在「位置參數」的後面code

注意:默認參數必須指向不變對象對象

def testFunc3(x, y=2):
    return x

def testFunc4(x=2, y=3):
    return x, y
複製代碼

調用:教程

>>> testFunc3(y=4, x=0)
(0, 4)
>>> testFunc3(3)
(3, 2)
>>> testFunc3(9,8)
(9, 8)
複製代碼

3. 可變參數

當傳入的參數的數量沒法肯定時就能夠使用可變參數,能夠傳入任意個包括0個參數get

若是傳入了多個參數,在函數調用時自動組裝成爲一個tuple

格式特色:定義函數時在參數名前加一個星號*

def testFunc5(*numbers):
    sum = 1
    for n in numbers:
        sum = sum * n
    return sum
複製代碼

調用:

>>> testFunc5(3, 5, 9)
135
複製代碼

傳入一個list或tuple的時候必須在參數前面加上星號*

>>> testNumbers = [6, 2, 4]
>>> testFunc5(*testNumbers)
48
複製代碼

4. 關鍵字參數

關鍵字參數容許傳入0個或人一個含有參數名的參數,

函數調用時自動組裝爲一個dict

定義:

def testFunc6(name, numberOfPhones, **phonesName):
    print(f"""name: {name} number: {numberOfPhones} other: {phonesName}""")
複製代碼

調用:

>>> testFunc6('Simon', 3, Phone1='iPhone', Phone2='Xiaomi')
name: Simon
number: 3
other: {'Phone1': 'iPhone', 'Phone2': 'Xiaomi'}
複製代碼

或者能夠將dict直接傳入關鍵詞參數,可是傳入時須要再dict名稱前加2個星號**

定義:

Phones= {'Phone1': 'iPhone', 'Phone2': 'Xiaomi'}
testFunc6('Simon', 3, **Phones)
複製代碼

5. 命名關鍵字參數

命名關鍵字參數限制了傳入的參數的名字

傳參時必須傳入參數名,不然將報錯

定義:

def testFunc7(name, os, *, version, language):
    print(name, os, version, language)
複製代碼

調用

>>> testFunc7('pyServer', 'Centos', version= 8, language= 'CN')
pyServer Centos 8 CN
複製代碼

若是函數定義中已經有了一個可變參數,後面跟着的命名關鍵字參數就再也不須要一個特殊分隔符*了:

def testFunc7(name, os, *type, version, language):
    print(name, os, type, version, language)
複製代碼

6. 參數組合

當一個函數存在多種參數類型,必須遵照參數使用的順序:

必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數

定義:

def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
複製代碼
相關文章
相關標籤/搜索