python函数不包括参数函数_Python不定参数函数

1. 元组形式

def test1(*args):print('################test1################')print(type(args))print(args)

正确调用:

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'

2. 字典形式

def test2(**kargs):print('################test2################')print(type(kargs))print(kargs)

正确调用:

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

3. 混合形式

def test3(*args, **kargs):print('################test3################')print(type(args))print(args)print(type(kargs))print(kargs)

正确调用:

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

4. 其他形式1

def test4(a =()):print('################test4################')print(type(a))print(a)

正确调用:

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

def test5(b ={}):print('################test5################')print(type(b))print(b)

正确调用:

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

def test6(a = (), b ={}):print('################test6################')print(type(a))print(a)print(type(b))print(b)

正确调用:

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'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值