2017-08-13 17 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

あなたが望むなら、私はあなたに助けを与えることができます、あなたが欲しい: –

関連する問題