关于python:如何将多个参数传递到函数中

How to pass multiple arguments into function

本问题已经有最佳答案,请猛点这里访问。

我试图解析一个JSON文件,假设调用的函数从一个名为section1的变量获取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]

不预先定义参数数量的解决方案将更适合,因为参数数量可能会有所不同。


您可以使用*args语法:

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

在这里和这里阅读更多。