通过一个变量的多个变量

时间:2016-10-26 08:53:29

标签: python

在python中,我有这样的代码:

def var(a=1, b=2, c=3):
        return a, b, c

运行它会产生这样的结果:

>>> import Test
>>> Test.var()
(1, 2, 3)

在这种情况下,1,2和3是我想要使用的默认值。偶尔,我希望能够修改所有或部分变量。但是,因为我有许多可能的var()语句具有不同的默认值和默认值。它们可以是var(a = 1,b = 2,c = 3)或var(d = 1,e = 2,f = 3,g = 4)或var(h = 0)等等。

我想通过我可以从命令行提供的单个变量修改这些变量,如下所示:

>>> arguments = 'a=0, b=5, c=7'

但这不起作用。

>>> Test.var(arguments)
('a=0, b=5, c=7', 2, 3)

它解释了'论证'变量只是' a'而b和c保持不变。我怎样才能提出我的论据?变量是由def语句按字面读取的吗?

2 个答案:

答案 0 :(得分:2)

你可以unpack a tuple or a dictionary into arguments。这意味着以下所有条件都相同:

keyword_arguments = {'a':0, 'b':5, 'c':7}
positional_arguments = (0, 5, 7)

Test.var(0, 5, 7)
Test.var(a=0, b=5, c=7)
Test.var(*positional_arguments)
Test.var(**keyword_arguments)

答案 1 :(得分:0)

您可以使用您用作函数参数的列表或字典:

   >>> arglist = [5,6,7]
   >>> var(*arglist)
   (5, 6, 7)
   >>> argdict = {'b':4,'a':3, 'c':5}
   >>> var(**argdict)
   (3, 4, 5)