Python:将本地变量引用作为字符串传递

时间:2016-08-29 15:18:56

标签: python-2.7 numpy

我使用交互式解释器进行数据分析,所以我倾向于定义函数并在需要时调用它们。在这种情况下,我想调用一些函数:

def function(var):
     do stuff
     ax.plot(x, y) 
     blah
     ax.set_title('var')

其中函数调用中的var是ndarray,而set_title中的var是ndarray的引用。

我目前正在实施

 def function(var, varstring):
     do stuff
     ax.plot(x, y) 
     blah
     ax.set_title(varstring)

其中var是foo而varstring只是'foo' - 一个示例调用:

 module.function(foo, 'foo')

现在,我的函数需要更多的变量,并且反复复制所有内容都很笨重,但是我无法弄清楚如何将var作为'var'来解决..任何尝试这样做都会为我提供一个字符串ndarray值。

2 个答案:

答案 0 :(得分:2)

如果您在解释器中工作,变量可能在全局范围内。因此,您可以使用var = globals()[varstring]访问它们,然后将字符串名称传入每个函数。

请注意,对象(var)不知道其名称(varstring),这就是全局名称需要传递给函数而不是对象本身的原因。

答案 1 :(得分:-1)

你必须以这种方式定义你的功能:

def function(varstring):
    var = globals()[varstring]
    # do stuff with `var` variable
    ax.plot(x, y)
    ax.set_title(varstring)

然后拨打module.function('foo')