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

猜你喜欢

转载自blog.csdn.net/Panda996/article/details/84787952
今日推荐