用于将键值参数存储到函数的变量

时间:2019-04-12 15:28:25

标签: python

我具有以下功能,我想知道如何创建变量来实际存储a=1, b=2, c=3吗?因此我可以将这些变量传递给test吗?

def test(a, b, c):
    print (a, b, c)

test(a=1, b=2, c=3)

# Things I want to have
d="a=1"
e="b=2"
f="c=3"
test(d, e, f)

2 个答案:

答案 0 :(得分:1)

您可能是想打开字典包装?像这样:

def test(a, b, c):
    print (a, b, c)

test(a=1, b=2, c=3)

my_args = {"a":1, "b":2, "c":3}
test(**my_args) #Unpacks the my_args dictionary to use as the arguments to the function

答案 1 :(得分:0)

locals()是一个字典,将变量名保存为键,变量的值存储为值,该字典可用于函数内部以打印所需的方式!

def test(a, b, c):
    print(locals())
    #{'a': 1, 'b': 2, 'c': 3}
    for key, value in locals().items():
        print('{}={}'.format(key, value))
    print (a, b, c)

test(a=1, b=2, c=3)
#a=1
#b=2
#c=3
#1 2 3

调用函数test的另一种方法是创建一个参数字典,并像这样传递参数。

dct = {'a':1,'b':2,'c':3}
test(**dct)