刚开始接触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
暂无评论内容