""" def demo(*args): print(args) demo(1, 2, 3, 4, 5, 6, 7, 8, 9) demo() print(max(1, 2, 3, 4)) print(max('abcdef')) """ """ def demo(a, b, *args): # print(a, b, args) print(args, a, b) demo(1, 2, ) #1 2 () demo(1, 2) # demo(1, 2, 3, 4, 5) #1 2 (3 4 5) # def demo(*args, a = 1): # demo('x', 'y') #('x', 'y') 1 """ def demo(**kwargs): print(kwargs) myDict = {'a':'a', 'b':'b'} demo(**myDict) #在调用处 将字典转换为关键字 def funarg1(arg): #只允许传入第一个参数 print(arg) funarg1(1) def funargs(arg1, arg2, arg3): print(arg1, arg2, arg3) funargs(1, 2, 3) def funkwargs(**kwargs): print(**kwargs) def funargs_Kwargs(*args, **kwargs): # 在函数的位置上*b将其转化为元组,而双星**b代表接收多个关键字参数,并将其转化为字典 print('args={}'.format(args)) print('kwargs={}'.format(kwargs)) funargs_Kwargs(1,2,3,4) funargs_Kwargs(1, 2, 3, 4, a=2, b=3) funargs_Kwargs(1, [1,2,3,4],None, 4, a=2, b=3) #同时使用*args 和**kwargs时,*args必须在**kwargs之前 #def funargs_Kwargs(**kwargs, *args): SyntaxError: invalid syntax #如果在变量前面使用单星号,实际上是对变量的一次拆解操作,将变量中单独的元素拆解出来,然后依次传入one()函数,而传入one()函数后,one()函数会将这些传入的单个元素保存成一个元组,这就是为什么我们 print(x[0])能够提取第一个元素的原因 def demo(x,*args,**kwargs): print(x,args,kwargs) demo(1,2,3,4,a=1,b=2)
函数的接收不定长参数 *args 和**kwargs的用法
最新推荐文章于 2024-07-01 15:50:45 发布