Python中函數(shù)參數(shù)匹配模型詳解
當(dāng)我們的函數(shù)接收參數(shù)為任意個,或者不能確定參數(shù)個數(shù)時,我們,可以利用 * 來定義任意數(shù)目的參數(shù),這個函數(shù)調(diào)用時,其所有不匹配的位置參數(shù)會被賦值為元組,我們可以在函數(shù)利用循環(huán)或索引進(jìn)行使用
def f(*args):
# 直接打印元組參數(shù)
print(args)
print('-'*20)
# 循環(huán)打印元組參數(shù)
[print(i) for i in args]
...
# 傳遞一個參數(shù)
f(1)
print('='*20)
# 傳遞5個參數(shù)
f(1, 2, 3, 4, 5)
示例結(jié)果:
(1,)
--------------------
1
====================
(1, 2, 3, 4, 5)
--------------------
1
2
3
4
5
###任意參數(shù) ** 而 ** 是用于收集關(guān)鍵字參數(shù)并將這些參數(shù)傳遞給一個新的字典,即在函數(shù)中我們可以利用處理字典的方式處理這些參數(shù)
def f(**args):
# 直接打印字典參數(shù)
print(args)
for key, value in args.items():
print('{}: {}'.format(key, value))
f(a=1)
print('='*20)
f(a=1, b=2, c=3)
示例結(jié)果:
{'a': 1}
a: 1
====================
{'a': 1, 'b': 2, 'c': 3}
a: 1
b: 2
c: 3
任意參數(shù)混合
我們可以混合一般參數(shù)、 * 參數(shù)以及 ** 參數(shù)完成實(shí)現(xiàn)更加復(fù)雜的調(diào)用方式。
def f(a, *targs, **dargs): print(a, targs, dargs) f(1,2,3, x=1, y=2)
示例結(jié)果:
1 (2, 3) {'x': 1, 'y': 2}
可以看到這種調(diào)用方式并不那么直觀,甚至有些“混淆視聽”,那么怎么在復(fù)雜任意參數(shù)的調(diào)用時,是的在函數(shù)調(diào)用更加直觀明了?
解包參數(shù)
我們可以在函數(shù)調(diào)用時,直接利用*和**進(jìn)行參數(shù)傳遞,然后讓函數(shù)自動解包,也就類似之前的序列解包,使用調(diào)用時更加的直觀。
def f(a, b, c, d):
print(a, b, c, d)
f(1, *(2, 3), **{'d': 4})
示例結(jié)果:
1 2 3 4
總結(jié)
以上所述是小編給大家介紹的Python中函數(shù)參數(shù)匹配模型詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
使用python切片實(shí)現(xiàn)二維數(shù)組復(fù)制示例
今天小編就為大家分享一篇使用python切片實(shí)現(xiàn)二維數(shù)組復(fù)制示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法
今天小編就為大家分享一篇pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python中dumps與dump及l(fā)oads與load的區(qū)別
這篇文章主要介紹了Python中dumps與dump、loads與load的區(qū)別,json模塊提供了一種很簡單的方式來編碼和解碼JSON數(shù)據(jù)。其中兩個主要的函數(shù)是json.dumps()和json.loads(),需要的朋友可以參考下2022-04-04
Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法,涉及Python htmlparser及docx模塊的相關(guān)使用技巧,需要的朋友可以參考下2017-11-11
Python實(shí)現(xiàn)淘寶秒殺功能的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)淘寶秒殺功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
python微信公眾號之關(guān)注公眾號自動回復(fù)
這篇文章主要為大家詳細(xì)介紹了python微信公眾號之關(guān)注公眾號自動回復(fù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10
用Python實(shí)現(xiàn)大文本文件切割的方法
今天小編就為大家分享一篇用Python實(shí)現(xiàn)大文本文件切割的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
python實(shí)現(xiàn)搜索本地文件信息寫入文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)搜索本地文件信息寫入文件的方法,涉及Python針對文件的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下2016-02-02

