python如何定义不定参数函数
*args,可以传入任意多个参数
**args,以字典形式传入任意多个参数
  
 - 1
 - 2
 
元组形式: 
 1、定义函数 
 def test1(*args): 
 print(‘################test1################’) 
 print(type(args)) 
 print(args) 
 2、调用函数 
 正确调用: 
 test1(1, 2) #args在函数体内部为tuple类型 
 错误调用: 
 test1(1, b=2) #TypeError: test1() got an unexpected keyword argument ‘b’ 
 test1(a=1, b=2) #TypeError: test1() got an unexpected keyword argument ‘a’ 
 test1(a=1, 2) #TypeError: test1() got an unexpected keyword argument ‘a’ 
 python系列:[3]如何定义不定参数函数步骤阅读 
 python系列:[3]如何定义不定参数函数 
 2 
 字典形式: 
 1、定义函数 
 def test2(**kargs): 
 print(‘################test2################’) 
 print(type(kargs)) 
 print(kargs) 
 2、调用函数 
 正确调用: 
 test2(a=1, b=2) #kargs在函数体内部为dict类型 
 错误调用: 
 test2(1, 2) #TypeError: test2() takes exactly 0 arguments (2 given) 
 test2(1, b=2) #TypeError: test2() takes exactly 0 arguments (2 given) 
 test2(a=1, 2) #SyntaxError: non-keyword arg after keyword arg 
 python系列:[3]如何定义不定参数函数 
 python系列:[3]如何定义不定参数函数 
 3 
 混合形式: 
 1、定义函数 
 def test3(*args, **kargs): 
 print(‘################test3################’) 
 print(type(args)) 
 print(args) 
 print(type(kargs)) 
 print(kargs) 
 2、调用函数 
 正确调用: 
 test3(1, 2) #args在函数体内部为tuple类型,kargs为空dict类型 
 test3(1, b=2) #args在函数体内部为tuple类型,kargs为dict类型 
 test3(a=1, b=2) #args在函数体内部为空tuple类型,kargs为dict类型 
 错误调用: 
 test3(a=1, 2) #SyntaxError: non-keyword arg after keyword arg 
 python系列:[3]如何定义不定参数函数 
 python系列:[3]如何定义不定参数函数 
 4 
 其他形式1: 
 1、定义函数 
 def test4(a = ()): 
 print(‘################test4################’) 
 print(type(a)) 
 print(a) 
 2、调用函数 
 正确调用: 
 test4((1, 2)) #a在函数体内部为tuple类型 
 test4(a=(1, 2)) #a在函数体内部为tuple类型 
 test4((1,)) #a在函数体内部为tuple类型 
 test4(a=(1,)) #a在函数体内部为tuple类型 
 test4((1)) #a在函数体内部为int类型,非tuple类型 
 test4(a=(1)) #a在函数体内部为int类型,非tuple类型 
 test4(1) #a在函数体内部为int类型,非tuple类型 
 test4(a=1) #a在函数体内部为int类型,非tuple类型 
 错误调用: 
 test4(1, 2) #TypeError: test4() takes at most 1 argument (2 given) 
 test4(1, b=2) #TypeError: test4() got an unexpected keyword argument ‘b’ 
 test4(a=1, b=2) #TypeError: test4() got an unexpected keyword argument ‘b’ 
 5 
 其他形式2: 
 1、定义函数 
 def test5(b = {}): 
 print(‘################test5################’) 
 print(type(b)) 
 print(b) 
 2、调用函数 
 正确调用: 
 test5({‘a’:2}) #b在函数体内部为dict类型 
 test5(b={‘a’:2}) 
 test5({‘a’:2,’b’:3})#b在函数体内部为dict类型 
 test5(b={‘a’:2,’b’:3}) 
 test5(b=2) #b在函数体内部为int类型,非dict类型 
 错误调用: 
 test5(a=1, b=2) #TypeError: test5() got an unexpected keyword argument ‘a’ 
 test5(1, 2) #TypeError: test5() takes at most 1 argument (2 given) 
 test5(1, b=2) #TypeError: test5() got multiple values for keyword argument ‘b’ 
 6 
 其他形式3: 
 1、定义函数 
 def test6(a = (), b = {}): 
 print(‘################test6################’) 
 print(type(a)) 
 print(a) 
 print(type(b)) 
 print(b) 
 2、调用函数 
 正确调用: 
 test6(1, 2) 
 test6(a=1, b=2) 
 test6(a=1, b=2) 
 test6((1, 2), {‘c’:8}) 
 test6({‘c’:8}) 
 test6(b={‘c’:8}) 
 test6((1, 2), b=2) 
 test6((1, 2), b=2) 
 错误调用: 
 test6(a=1, 2) #SyntaxError: non-keyword arg after keyword arg 
 test6(1, 2, b=2) #TypeError: test6() got multiple values for keyword argument ‘b’
文章来源: blog.csdn.net,作者:fengda2870,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/fengda2870/article/details/49491679
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)