python基礎之不定長參數

例1:

def test(a,b,c=10,*args):   # 默認參數c,要放在a,b的後面
	print("a=%s" %a)
	print("b=%s" %b)
	print("c=%s" %c)
	print("args:")
	for each in args:
		print(each)

>>> test(1,2,3,44,55,66,77,88) # 1傳給a,2傳給b,3傳給c,44,55,66,77,88傳給args
a=1
b=2
c=3
args:
44
55
66
77
88
>>> def test(a,b,c=10,*args,**kwargs):
	print("a=%s" %a)
	print("b=%s" %b)
	print("c=%s" %c)
	print("args:")
	for each in args:
		print(each)
	print("kwargs-items:")
    # 可以將kwargs理解爲字典
	for each in kwargs.items():  #打印items
		print(each)
	print("kwargs-keys:")
	for each in kwargs.keys():   #打印Keys
		print(each)
	print("kwargs-values:")
	for each in kwargs.values(): #打印values
		print(each)
>>> test(1,2,3,44,55,name="wang qing",age=23,gender="girl",job="HR")
a=1
b=2
c=3
args:
44
55
kwargs-items:
('name', 'wang qing')
('age', 23)
('gender', 'girl')
('job', 'HR')
kwargs-keys:
name
age
gender
job
kwargs-values:
wang qing
23
girl
HR

例 2:

>>> A=[22,33,44]
>>> B={"name":"wang han","age":33,"gender":"boy","job":"Manager"}
>>> def test(a,*args,**kwargs):
	print("a=%s" %a)
	print("args:")
	for each in args:
		print(each)
	print("kwargs:")
	for each in kwargs:
		print(each)		
>>> test(1,A,B) # A作爲整體傳入args,B並非以鍵值對的形式傳入,作爲整體傳入args,沒有參數傳入kwargs
a=1
args:
[22, 33, 44]
{'name': 'wang han', 'age': 33, 'gender': 'boy', 'job': 'Manager'}
kwargs:

可將以上代碼中A,B進行拆包後傳入:

>>> A=[22,33,44]
>>> B={"name":"wang han","age":33,"gender":"boy","job":"Manager"}
>>> def test(a,*args,**kwargs):
	print("a=%s" %a)
	print("args:")
	for each in args:
		print(each)
	print("kwargs:")
	for each in kwargs:
		print(each)
>>> test(1,*A,**B)  # 傳參時,先將A,B拆包,一個*拆列表,兩個**拆字典
a=1
args:
22
33
44
kwargs:
name
age
gender
job

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章