def my_func(arg):
...
x = foo(var_arg)
...
将许多变量另存为var_1
,var_2
,var_3
,我将能够根据foo函数的参数传递其中一个变量。因此,如果我调用my_func(2)
,则在函数x
中将等于foo(var_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_1
,var_2
和var_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'
如您所见,使用字典时,您甚至根本不需要变量。只需直接使用该值即可。