1. 程式人生 > 程式設計 >Python傳遞引數的多種方式(小結)

Python傳遞引數的多種方式(小結)

一 位置傳遞

沒什麼好過多講解.

# 位置傳遞例項:
def fun1(a,b,c):
  return a+b+c

print(fun1(1,2,3))

輸出:

6

二 關鍵字傳遞

更具每個引數的名字寫入函式引數

 # 關鍵字傳遞
 def fun2(a,c):
  return a+b+c
 
print(fun2(1,c=3,b=2))

輸出:

6

三 引數預設值傳遞

給函式的輸入引數設定一個預設值,如果該引數最終沒有輸入,則使用預設引數出入函式.

# 預設值傳遞
 def fun3(a,b=2,c=3):
  return a+b+c

print(fun3(a = 1))

輸出:

6

四 包裹傳遞

在定義函式時,我們有時候並不知道呼叫的時候會傳遞多少個引數。這時候,包裹(packing)位置引數或者包裹關鍵字引數來進行引數傳遞會非常有用。

下面是包裹位置傳遞的例子:

def fun4(*name):
 print(type(name))
print(name)

fun4([1,3])
fun4((1,3))
fun4(1,3)

結果:

<class 'tuple'>
([1,3],)
<class 'tuple'>
((1,3),)
<class 'tuple'>
(1,3)

從上面的結果分析:

在fun4的引數表中,所有的引數被name收集,根據位置合併成一個元祖(tuple),這就是包裹位置傳遞。

五 解包裹傳遞

 def func1(a,b=1,*c,**d):
  print(a,c,d)  

 
l = [3,4]
dic = {'@':2,'#':3}

func1(1,l,dic)
print("---------**------------")
func1(1,*l,**dic)
func1(1,3,4,**dic)

執行結果:

1 2 ([3,4],{'@': 2,'#': 3}) {}
---------**------------
1 2 (3,4) {'@': 2,'#': 3}

1 2 (3,'#': 3}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。