インスタンス変数を別のファイルから変更することはできますか?別のファイルからインスタンス変数を変更しますか?
私が欲しいのは、File_1内のインスタンス変数をFile_2から変更することです。例えば
:
Traceback (most recent call last):
File "File_1.py", line 4, in <module>
import File_2
File "File_2.py", line 3, in <module>
import File_1
File "File_1.py", line 14, in <module>
main.modify()
File "File_1.py", line 11, in modify
File_2.modify()
AttributeError: 'module' object has no attribute 'modify'
理由:
//File 1
import File_2
class Main:
def __init__(self):
self.example = "Unmodified"
def modify(self):
File_2.modify()
main = Main()
main.modify()
//File 2
import File_1
def modify():
File_1.main.example = "Modified"
これは私に次のような出力を提供しますか?
EDIT(よりよい説明する):
(ファイル1)メインクラスのインスタンス変数を有します。私が望むのは、その変数を別のファイル(ファイル2)から変更することです。私は少し変更したコード:
//File 1
import File_2
class Main:
def __init__(self):
self.example = "Unmodified"
def modify(self):
File_2.modify()
if __name__ == "__main__":
main = Main()
main.modify()
//File 2
def modify():
//do some stuff
//now I want to modify the example variable from the main class, but how?
答えをいただきありがとうございます。私は、よりよく説明するために質問を編集しました。 – Adrian
wweはあなたが望むものを補完することができます - そして、あなたの問題が何であるか答えました。 - 周期的なインポートをカットして、あなたのコードも望みどおりに動作します。 – jsbueno
@Adrian:* jsbueno *は正解です。あなたのサイクリックインポートを削除する必要があります。私はいくつかの例を投げて私の答えを編集した(あなたの実際のコードはあなたを助けるのは少し難しい)。 –