标签:字典 name 元祖 *args UNC func 关键字 red 个数
动态参数,也叫不定长传参,就是你需要传给函数的参数很多,不定个数,那这种情况下,你就用*args,**kwargs接收:
args可以接收不确定个数的参数
def func(*args):
print(args,type(args))
func(1,2,‘alex‘)
计算结果:
(1, 2, ‘alex‘) <class ‘tuple‘>
若将*args放在最前边,它会接收全部参数,a,b就没有对应的实参了
若将*args放在最前边,它会接收全部参数,a,b就没有对应的实参了
def func(*args,a,b):
print(a)
print(b)
print(args,type(args))
func(1,2,‘alex‘,3,4)
计算结果直接报错:
func(1,2,‘alex‘,3,4)
TypeError: func() missing 2 required keyword-only arguments: ‘a‘ and ‘b‘
有默认参数的时候,要放在*args后边
def func(a, b, *args, sex = ‘男‘):
print(a)
print(b)
print(args,type(args))
print(sex)
func(1,2,‘alex‘,‘wusir‘,‘ritian‘)
计算结果:
1
2
(‘alex‘, ‘wusir‘, ‘ritian‘) <class ‘tuple‘>
男
接收关键字参数
def func(**kwargs):
print(kwargs)
func(a = 1, b = 4, c = 3)
计算结果:
{‘a‘: 1, ‘b‘: 4, ‘c‘: 3}
位置参数、*args、默认参数、**kwargs
def func(a,*args,sex = ‘男‘, **kwargs):
print(a)
print(sex)
print(args)
print(kwargs)
func(1,‘alex‘,‘wusir‘,‘ritian ‘,sex = ‘女‘,name = ‘taibai‘,age = 21)
计算结果:
1
女
(‘alex‘, ‘wusir‘, ‘ritian ‘)
{‘name‘: ‘taibai‘, ‘age‘: 21}
万能参数
def func(*args, **kwargs):
print(args)
print(kwargs)
func(1,name="alex")
计算结果:
(1,)
{‘name‘: ‘alex‘}
标签:字典 name 元祖 *args UNC func 关键字 red 个数
原文地址:https://www.cnblogs.com/yangwenzhe/p/9048162.html