1分鐘掌握 Python 函式引數
任何程式語言函式都是非常重要的一部分,而在進行函式呼叫時,瞭解函式的引數傳遞方式是非常有必要的。Python中支援哪些傳參方式呢?
Python中的傳參方式是比較靈活的,主要包括以下六種:
按照位置傳參
按照關鍵字傳參
預設引數
元組傳參
字典傳參
綜合傳參
按照位置傳參
顧名思義,實參與形引數目一致,並且是按照位置一一對應的。
def func(a, b):
return a+b*2
當呼叫函式func(1,2)時,則按照a=1,b=2的方式形參與實參對應,返回結果為5。
按照關鍵字傳參
這種方式在呼叫函式時既傳實參,也傳形參。因而,不需要根據位置對應了,位置可以顛倒:
def func(a, b):
return a+b*2
當呼叫函式func(b=1,a=2)時,則按照b=1,a=2的方式形參與實參對應,匹配的方式是關鍵字而非位置,返回結果為4。
預設引數
預設引數必須放在前兩類引數之後,在呼叫函式的時候可以傳參,也可以不傳。不傳則採用預設的引數值。
def func(a, b, c = 3):
return a+b*2+c
其中,c為預設引數。當通過func(1,2)呼叫函式時,c的取值為預設值3,函式的執行結果為8;當通過func(1,2,5)呼叫函式時,c的取值為實參值5,函式的執行結果為10。
元組傳參
傳入的引數以元組的形式呈現,長度不限,可以通過元組的訪問方式依次訪問各個入參:
def func(*args):
for eacharg in args:
print ('tuple arg:', eacharg)
呼叫方式如下:func('I', 'Love', 'PythonSomething')
呼叫結果為:
tuple arg: I
tuple arg: Love
tuple arg: PythonSomething
字典傳參
傳入的引數以字典的形式呈現,長度不限,可以通過字典的訪問方式依次訪問各個入參:
def func(**kwargs):
for eachkwarg in kwargs.keys():
print('Dict Arg', eachkwarg, ':', kwargs[eachkwarg])
呼叫方式如下:
func(English_name = 'PythonSomething', Chinese_name= 'Python')
呼叫結果為:
Dict Arg English_name : ***
Dict Arg Chinese_name : ***
綜合傳參
是以上幾種傳參方式的綜合。實際上,大家從上面的例子也可以發現,元組傳參和字典傳參已經能夠滿足大部分傳參場景。所以,通常所的綜合傳參指的是這兩種的組合,大家在原始碼中也經常會發現它們的身影:
def func(*args,**kwargs):
for eacharg in args:
print('tuple arg:', eacharg)
for eachkwarg in kwargs.keys():
print('Dict Arg', eachkwarg, ':', kwargs[eachkwarg])
呼叫示例為:
func('I', 'Love', 'PythonSomething', English_name = 'PythonSomething', Chinese_name= 'Python那些事')
呼叫結果為:
tuple arg: I
tuple arg: Love
tuple arg: PythonSomething
Dict Arg Chinese_name : ***
Dict Arg English_name : ***
相關文章
- Python: 函式引數魔法Python函式
- python---函式引數、變數Python函式變數
- Python函式引數總結Python函式
- python函式變長引數Python函式
- Python 函式(預設引數)Python函式
- Python 函式(可變引數)Python函式
- Python 函式(引數組合)Python函式
- Python函式/動態引數/關鍵字引數Python函式
- 函式引數 引數定義函式型別函式型別
- python sorted()函式的引數用法Python函式
- Python 函式 (關鍵字引數)Python函式
- python函式之引數傳遞Python函式
- 函式定義、函式的引數、函式的預設引數函式
- python基礎之 函式的引數Python函式
- python中函式的引數傳遞Python函式
- python不定長引數如何呼叫函式?Python函式
- python函式星號引數詳解Python函式
- Python函式的位置引數、關鍵字引數精講Python函式
- Javascript函式引數求值——Thunk函式JavaScript函式
- 函式基礎和函式引數函式
- Python 中__init__函式以及引數selfPython函式
- Python語法—函式及引數傳遞Python函式
- Python 中函式的 收集引數 機制Python函式
- Python函式引數傳遞以及變數作用域Python函式變數
- PHP函式,引數,可變參函式.PHP函式
- 函式、引數、解構函式
- 函式引數詳解函式
- Python3之函式的引數傳遞與引數定義Python函式
- python 函式引數的傳遞(引數帶星號的說明)Python函式
- 『無為則無心』Python函式 — 26、Python函式引數的傳遞方式Python函式
- 3.3.2 函式的預設引數和佔位引數 函式過載函式
- Python的函式引數傳遞:傳值?引用?Python函式
- Python 序列型別以及函式引數型別Python型別函式
- Python函式引數和註解是什麼Python函式
- Python技法2:函式引數的進階用法Python函式
- 一文看懂 Python 中的函式引數Python函式
- Python print函式引數詳解以及效果展示Python函式
- python 獲取函式的所有引數列表:locals()Python函式