2017-08-13 48 views
0

我的代码中有一个导入的模块。该模块包含一个定义在其中的功能。该函数不返回任何值。在我的代码中,我想访问在该函数中声明的变量。有没有办法做到这一点?导入类的函数中的访问变量

编辑: 因此,OSS中有一个模块正在生成语音序列。但语音序列变量不是全局的,函数也不返回语音序列。我想访问我的插件中的语音序列。

+0

听起来像[XY问题](https://meta.stackexchange.com/a/66378)。你想达到什么目的?请提供一个[最小,完整且可验证的示例](https://stackoverflow.com/help/mcve) ,它重现了您的问题。 –

+0

该函数的作用域中的变量?如果没有对模块或代码的任何引用,很难说明,但是你不应该访问函数范围中定义的变量。 – cole

+0

编辑,与问题。 –

回答

0

如果你的函数如下所示:

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) 

你不需要这种破解的,如果你的函数不返回任何东西。只要让它返回你想要的变量,并将它分配给你的主代码范围内的东西。

+0

我已经知道了。但是,正如我所提到的那样,这是一个开源软件,我建立了一个插件,因为它暂时不能进行更改。因此,这种黑客不可能工作? –

+0

我不认为有任何其他的方式来实现这一点..你仍然可以编辑源,以满足您的需求,虽然.. –

+0

我可以帮助你,如果你愿意,只要告诉我哪个模块,函数和变量你想:) –