小编给大家分享一下python传入不定长参数的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

刚开始接触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_args1()test3_var_args1(2,3,4)test4_var_args1{'a':'2','b':'3'}test5_var_args1(2,3,4){'a':'5','b':'6'}test6_var_args1moren(){'a':'2','b':'3','c':'4'}test6_var_args13(){'c':'4'}

上述例子可知:

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

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

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

特别注意的是,当前带有不定参数的函数传递列表或者字典时,切记,一定要解包否则报错

lis=[1,2,3]defparse(*args):foriinargs:print(i)parse(*lis)#解包

看完了这篇文章,相信你对python传入不定长参数的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!