【问题标题】:Passing many variables as one variable in python在python中将许多变量作为一个变量传递
【发布时间】:2022-01-06 21:04:48
【问题描述】:

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

一种方法是在函数中分别传递每个变量,如下所示:

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代码不正确,我只是想表达我的问题。

提前致谢

【问题讨论】:

  • 在列表中传递这些变量,然后求和?
  • 也许你可以使用**kwargs? realpython.com/python-kwargs-and-args
  • 停止思考变量。你不传递变量,你传递objects。将您的对象放入另一个对象中,例如列表或字典,或作为用户定义类实例的成员
  • 或者,使用某种可变参数,它基本上会将你的参数放入一个数据结构中,一个元组或一个字典

标签: python python-3.x function variables arguments


【解决方案1】:

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

选项 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})

【讨论】:

  • 非常感谢
猜你喜欢
  • 2011-04-28
  • 2013-08-29
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 2012-07-19
相关资源
最近更新 更多