python不定长参数_python如何传入不定长参数

刚开始接触Python时,向函数传递最多的为对应参数,所谓说的一个萝卜一个坑def test_arg(a,b):

print(a,b)

渐渐地发现,在定义函数时,我们并不知道函数调用的时候会传递多少个参数,这个就是今天主题提出的问题,即向函数传递不定数量的参数def test1_var_args(*arg2):

print("test1_var_args")

print(arg2)

def test2_var_arg(**arg):

print("test2_var_args")

print(arg)

def test3_var_args(arg1,*arg2):

print("test3_var_args")

print(arg1)

print(arg2)

def test4_var_args(arg1,**arg2):

print("test4_var_args")

print(arg1)

print(arg2)

def test5_var_args(arg1,*arg2,**arg3):

print("test5_var_args")

print(arg1)

print(arg2)

print(arg3)

def test6_var_args(arg1, arg2="moren",*arg3, **arg4):

print("test6_var_args")

print(arg1)

print(arg2)

print(arg3)

print(arg4)

if __name__=="__main__":

test_arg(1,2)

test1_var_args()

test1_var_args(1,2,3,4)

test2_var_arg()

test2_var_arg(a="1",b='2')

test3_var_args(1)

test3_var_args(1,2,3,4)

test4_var_args(1,a="2",b="3")

test5_var_args(1,2,3,4,a="5",b="6")

test6_var_args(1,a="2",b="3" ,c="4")

test6_var_args(1, arg2="3", c="4")

#结果

test1_var_args

()

test1_var_args

(1, 2, 3, 4)

test2_var_args

{}

test2_var_args

{'a': '1', 'b': '2'}

test3_var_args

1

()

test3_var_args

1

(2, 3, 4)

test4_var_args

1

{'a': '2', 'b': '3'}

test5_var_args

1

(2, 3, 4)

{'a': '5', 'b': '6'}

test6_var_args

1

moren

()

{'a': '2', 'b': '3', 'c': '4'}

test6_var_args

1

3

()

{'c': '4'}

上述例子可知:

前面带有 *表示为一个不定数量的元组参数,默认是()

前面带有**表示为一个不定数量的字典参数,默认是{}

多种参数混合使用时,需要注意顺序,一般为先位置、再关键字、再不定数量的元组参数、再不定数量的字典参数

特别注意的是,当前带有不定参数的函数传递列表或者字典时,切记,一定要解包否则报错lis=[1,2,3]def parse(*args):

for i in args:

print(i)parse(*lis)#解包

更多学习内容,请点击Python学习网。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值