python如何传入不定长参数

图片[1]-python如何传入不定长参数-uusu优素-乐高,模型,3d打印,编程

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

deftest_arg(a,b):
print(a,b)

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

deftest1_var_args(*arg2):
print("test1_var_args")
print(arg2)
deftest2_var_arg(**arg):
print("test2_var_args")
print(arg)
deftest3_var_args(arg1,*arg2):
print("test3_var_args")
print(arg1)
print(arg2)
deftest4_var_args(arg1,**arg2):
print("test4_var_args")
print(arg1)
print(arg2)
deftest5_var_args(arg1,*arg2,**arg3):
print("test5_var_args")
print(arg1)
print(arg2)
print(arg3)
deftest6_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]defparse(*args):
foriinargs:
print(i)parse(*lis)#解包
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容