Python-根据函数参数构造一个变量名

时间:2018-10-12 01:38:55

标签: python function variables

def my_func(arg):
    ...
    x = foo(var_arg)
    ...

将许多变量另存为var_1var_2var_3,我将能够根据foo函数的参数传递其中一个变量。因此,如果我调用my_func(2),则在函数x中将等于foo(var_2)的结果。可以像使用字符串一样构造一个变量名吗?

2 个答案:

答案 0 :(得分:2)

如何使用字典来存储变量,然后根据传递的参数动态构造变量名称,然后访问相应的值,然后可以将其作为参数传递给函数foo

In [13]: variables = {"var_1" : 11, "var_2": 22, "var_3": 33} 
    ...:  
    ...: def my_func(arg): 
    ...:     full_var = "var_" + str(arg)
    ...:     print(variables[full_var])
    ...:     # or call foo(variables[full_var])    
In [14]: my_func(1)                                                      
11

In [15]: my_func(2)
22

In [16]: my_func(3)
33

答案 1 :(得分:1)

我建议您使用字典。我认为,这将是最有效的选择。例如,假装var_1var_2var_3分别等于'a''b''c'。然后,您应该写:

d = {1: 'a', 2: 'b', 3: 'c'}

def foo(var):
    return d[var]

def my_func(arg):
    x = foo(var_arg)
    return x

my_func(1) # returns: 'a'

如您所见,使用字典时,您甚至根本不需要变量。只需直接使用该值即可。