在Python的使用中,我們經常會遇到這樣的函式定義:
def my_func(x, y, *args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
你是否好奇,這里的args和kwargs分別是什么含義呢?
args顧名思義,是arguments的簡寫,那也很容易想到kwargs是keyword arguments的簡寫了,也就是,前者是普通引數,后者是鍵值對引數的含義,
*args和**kwargs是python函式定義中,兩個特殊的符號,用以向函式中傳遞可變數量的引數,可以在事先不需要知道有多少引數,也不需要顯式命名他們的情況下,向函式內部傳遞任意數量的引數,
*args用以向一個函式傳遞可變數量的非鍵值對引數,這些引數被打包成一個tuple,并傳遞到函式內部,**kwargs用以向一個函式傳遞可變數量的鍵值對引數,這些引數被打包成一個dict,并傳遞到函式內部,示例如下:
def my_func(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
my_func(1, 2, 3, name="John", age=30, city="New York")
# Output: 1 2 3 name: John age: 30 city: New York

關注我的公眾號 不定期推送資訊,接受私信許愿
作者:iSherryZhang 出處:https://www.cnblogs.com/shuezhang/ 本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549612.html
標籤:Python
