Python傳遞參數的多種方式


Python中根據函數的輸入參數以及是否有返回值可分為四種函數:

1.無參數無返回值

2.有參數無返回值

3.無參數有返回值

4.有參數無返回值

Python 中參數傳遞有下列五種方式;

1.位置傳遞 

2.關鍵字傳遞

3.默認值傳遞

4.不定參數傳遞(包裹傳遞)

5.解包裹傳遞

一 位置傳遞

  沒什么好過多講解.

1 # 位置傳遞實例:
2 def fun1(a,b,c):
3     return a+b+c
4 
5 print(fun1(1,2,3))

輸出:

 

1 6

二 關鍵字傳遞

    更具每個參數的名字寫入函數參數

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

輸出:

6

 

三 參數默認值傳遞

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

1 # 默認值傳遞
2 def fun3(a,b=2,c=3):
3     return a+b+c
4 
5 print(fun3(a = 1))

輸出:

1 6

 

四 包裹傳遞

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

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

1 def fun4(*name):
2     print(type(name))
3     print(name)
4 
5 fun4([1,2,3])
6 fun4((1,2,3))
7 fun4(1,2,3)

結果:

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

從上面的結果分析:

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

 五 解包裹傳遞

 1 def func1(a,b=1,*c,**d):
 2     print(a,b,c,d)    
 3 
 4  
 5 l = [3,4]
 6 dic = {'@':2,'#':3}
 7 
 8 func1(1,2,l,dic)
 9 print("---------**------------")
10 func1(1,2,*l,**dic)
11 func1(1,2,3,4,**dic)
View Code

運行結果:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM