在 python 中将多个变量作为一个变量传递

Passing many variables as one variable in python

我有一个要发送到我的函数的变量列表。 (因此该函数基于这些变量的值工作)。

一种方法是像这样在函数中单独传递每个变量:

def my_function(var1, var2, var3, var4, ..., varn):
   output = var1 + var2 + var3 + var4 + .... + varn

不过,不知能不能写出这样的东西:

def my_function(parameters):
    output = parameters.var1 + parameters.var2 + ... + parameters.varn

也就是说,有没有办法把所有的变量都包在一个变量里,然后这样调用呢?

我知道上面的python代码不正确,我只是想表达我的问题。

提前致谢

有很多选择。您必须确定哪种方式适合您的情况。

选项 1. 通过单个星号获取多个参数

def my_function(*args):
    output = sum(args)

    # SAME WITH
    # output = args[0] + args[1] + ... + args[n]
    #
    # PASSING ARGUMENTS EXAMPLE
    # my_function(10, 20, 10, 50)

选项 2. 通过双星号获取关键字参数

def my_function(**kwargs):
    output = sum(kwargs.values())
    
    # SAME WITH
    # output = kwargs["var0"] + kwargs["var1"] + ... + kwargs["varn"]
    #
    # PASSING ARGUMENTS EXAMPLE
    # my_function(var0=10, var1=20, var2=15)

选项 3. 将参数作为列表获取

def my_function(list_arg):
    output = sum(list_arg)

    # SAME WITH
    # output = list_arg[0] + list_arg[1] + ... + list_arg[n]
    #
    # PASSING ARGUMENTS EXAMPLE
    # my_function([1, 10, 3, -10])

选项 4. 将参数作为字典获取

def my_function(dict_arg):
    output = sum(dict_arg.values())

    # SAME WITH
    # output = kwargs["var0"] + kwargs["var1"] + ... + kwargs["varn"]
    #
    # PASSING ARGUMENTS EXAMPLE
    # my_function({"var0":5, "var1":10, "var2":3})