我的代码中有一个导入的模块。该模块包含一个定义在其中的功能。该函数不返回任何值。在我的代码中,我想访问在该函数中声明的变量。有没有办法做到这一点?导入类的函数中的访问变量
编辑: 因此,OSS中有一个模块正在生成语音序列。但语音序列变量不是全局的,函数也不返回语音序列。我想访问我的插件中的语音序列。
我的代码中有一个导入的模块。该模块包含一个定义在其中的功能。该函数不返回任何值。在我的代码中,我想访问在该函数中声明的变量。有没有办法做到这一点?导入类的函数中的访问变量
编辑: 因此,OSS中有一个模块正在生成语音序列。但语音序列变量不是全局的,函数也不返回语音序列。我想访问我的插件中的语音序列。
如果你的函数如下所示:
def function():
...
my_variable = "foo"
然后你就可以添加参数,这将迫使该变量要与正在返回任何东西一起返回。所以这个函数看起来像这样。
def function(get_variable=False):
...
return_variable = "bar"
my_variable = "foo"
if get_variable:
return (my_variable, return_variable)
else:
return return_variable
,然后访问它像这样:
import module
my_variable, return_variable = module.function(get_variable=True)
你不需要这种破解的,如果你的函数不返回任何东西。只要让它返回你想要的变量,并将它分配给你的主代码范围内的东西。
我已经知道了。但是,正如我所提到的那样,这是一个开源软件,我建立了一个插件,因为它暂时不能进行更改。因此,这种黑客不可能工作? –
我不认为有任何其他的方式来实现这一点..你仍然可以编辑源,以满足您的需求,虽然.. –
我可以帮助你,如果你愿意,只要告诉我哪个模块,函数和变量你想:) –
听起来像[XY问题](https://meta.stackexchange.com/a/66378)。你想达到什么目的?请提供一个[最小,完整且可验证的示例](https://stackoverflow.com/help/mcve) ,它重现了您的问题。 –
该函数的作用域中的变量?如果没有对模块或代码的任何引用,很难说明,但是你不应该访问函数范围中定义的变量。 – cole
编辑,与问题。 –