程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python中的*args和**kwargs(學習筆記)

編輯:Python

原文鏈接:Python中的*args和**kwargs(python基礎學習)_蒲公英上的塵埃的博客-CSDN博客_**kwargs

一、含義


1、*args和**kwargs主要用於定義函數的可變參數

2、*args:發送一個非鍵值對的可變數量的參數列表給函數

3、**kwargs:發送一個鍵值對的可變數量的參數列表給函數

4、如果想要在函數內使用帶有名稱的變量(像字典那樣),那麼使用**kwargs。

定義可變參數的目的是為了簡化調用。

*和**在此處的作用:打包參數。

二、使用時注意事項


1、*args和**kwargs不是固定的,只有前面的*和**是固定不可變的,後面的名稱可以隨意改,例如*vals代表非鍵值對的可變數量的參數,**parms代表可變數量的鍵值對參數。使用*args和**kwargs,是一種約定成俗的習慣,你也可以不使用這個名稱。

2、當要同時使用*args和**kwargs時,*args必須寫在**kwargs之前。

def test_args(*args):
print(args)
def test_kwargs(**kwargs):
print(kwargs)
print(type(kwargs))
for key, value in kwargs.items():
print("{} == {}".format(key, value))
def test_all(*args,**kwargs):
print(args)
print(kwargs)

∗把函數test_args()接受到的多個參數'name','age','address','sex',打包成了元組('name','age','address','sex'),賦值給了形參args。

test_args('name','age','address','sex')
# ('name', 'age', 'address', 'sex')

 **把函數test_kwargs()接受到的多個參數,以字典的形式賦值給了形參kwargs。

test_kwargs(name='zxf',age=23,address='zhejiang')
# {'name': 'zxf', 'age': 23, 'address': 'zhejiang'}
# <class 'dict'>
# name == zxf
# age == 23
# address == zhejiang
test_all('name','age',name='zxf',age=23)
# ('name', 'age')
# {'name': 'zxf', 'age': 23}


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved