How to pass multiple arguments into function
本问题已经有最佳答案,请猛点这里访问。
我试图解析一个JSON文件,假设调用的函数从一个名为
1 2 3 4 | def traverseJson(arg1): #do stuff section1 = json["section"]["section"][1] |
要调用我运行的函数:
1 | traverseJson(section1) |
然后如何将多个参数传入函数?例如
1 2 | section2 = json["section"]["subsection"][0] section3 = json["section"]["subsection"][0] |
不预先定义参数数量的解决方案将更适合,因为参数数量可能会有所不同。
您可以使用
1 2 3 | def traverse(*args): for arg in args: # logic |
更新:用法
1 2 3 4 5 6 7 8 | section1 = ... section2 = ... traverse(section1, section2) # or sections = [..., ...] traverse(*sections) |
如果你知道最大的arg数,一个非Python式的方法是
1 | def traverseJson(arg1=0, arg2=0, arg3=0, arg4=0): |
如果没有给出四个参数,它只为剩余的变量赋值0。
但是,我建议将参数作为列表传递。例如
1 2 3 4 5 | def traverseJson(arg1) : for i in arg1: #do stuff traverseJson([section1, section2, section3]) |
希望这有帮助
可以将此类参数作为数组或字典(关键字映射)传递。
要作为数组传递,请使用
例子:
1 2 | def function(first_arg, *args, **kwargs): # something |
在这里和这里阅读更多。