日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python中函數參數匹配模型詳解

系統 1696 0

當我們的函數接收參數為任意個,或者不能確定參數個數時,我們,可以利用?* 來定義任意數目的參數,這個函數調用時,其所有不匹配的位置參數會被賦值為元組,我們可以在函數利用循環或索引進行使用

            
def f(*args):
  # 直接打印元組參數
  print(args)
  print('-'*20)
  # 循環打印元組參數
  [print(i) for i in args]
  ...
# 傳遞一個參數
f(1)
print('='*20)
# 傳遞5個參數
f(1, 2, 3, 4, 5)
          

示例結果:

(1,)
--------------------
1
====================
(1, 2, 3, 4, 5)
--------------------
1
2
3
4
5

            
###任意參數 ** 而 ** 是用于收集關鍵字參數并將這些參數傳遞給一個新的字典,即在函數中我們可以利用處理字典的方式處理這些參數
def f(**args):
  # 直接打印字典參數
  print(args)
  for key, value in args.items():
    print('{}: {}'.format(key, value))
f(a=1)
print('='*20)
f(a=1, b=2, c=3)
          

示例結果:

{'a': 1}
a: 1
====================
{'a': 1, 'b': 2, 'c': 3}
a: 1
b: 2
c: 3

任意參數混合

我們可以混合一般參數、?* 參數以及?** 參數完成實現更加復雜的調用方式。

            
def f(a, *targs, **dargs):
  print(a, targs, dargs)
f(1,2,3, x=1, y=2)
          

示例結果:

1 (2, 3) {'x': 1, 'y': 2}

可以看到這種調用方式并不那么直觀,甚至有些“混淆視聽”,那么怎么在復雜任意參數的調用時,是的在函數調用更加直觀明了?

解包參數

我們可以在函數調用時,直接利用*和**進行參數傳遞,然后讓函數自動解包,也就類似之前的序列解包,使用調用時更加的直觀。

            
def f(a, b, c, d):
  print(a, b, c, d)
f(1, *(2, 3), **{'d': 4})
          

示例結果:

1 2 3 4

總結

以上所述是小編給大家介紹的Python中函數參數匹配模型詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 梧州市| 乐东| 东台市| 休宁县| 视频| 崇左市| 徐汇区| 会宁县| 油尖旺区| 栖霞市| 日照市| 太康县| 安西县| 沂水县| 太仆寺旗| 锡林浩特市| 昌邑市| 饶阳县| 和政县| 尉氏县| 新竹市| 湘潭市| 江源县| 道孚县| 溆浦县| 绥德县| 五华县| 新昌县| 祥云县| 上栗县| 措勤县| 祁门县| 九龙城区| 临湘市| 毕节市| 长春市| 巴彦淖尔市| 永兴县| 沂源县| 泊头市| 山西省|