我使用交互式解释器进行数据分析,所以我倾向于定义函数并在需要时调用它们。在这种情况下,我想调用一些函数:
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值。
答案 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')