2017-02-26 7 views
-2

私は現在、いくつかのファイルから複数のクラスを__main__.pyにインポートする必要があるプロジェクトに取り組んでいます。しかし、これらのクラスは相互に作用する必要があります(例:ファイル1のクラスAはクラスBの変数をファイル2からチェックする必要があります)。私はこのようにしてみた:インポートされたクラスを介してクラスにアクセスする

class A(object) 
    (code here) 
    if B.var == 1: 
    pass 

しかし、これはエラー(Bは定義されていません)を引き起こします。誰もがこれに対する解決を知っていますか?

答えて

0

まず、Bを完全修飾名で呼び出す必要があります。 import packagepackageにクラスBがある場合は、package.B.var == 1をチェックする必要があります。 from package import Bもできます。その場合は、B.var == 1を実行できます。

varが静的​​クラス変数ではなくプロパティである場合は、オブジェクトを作成する必要があります。これらの両方をまとめると、次のようなものが得られます。

+0

クラスbをクラスaにインポートすることは可能ですが、問題の変数はメインプログラムで頻繁に変更されることがあります。私がBをインポートしてBの別のインスタンスを作成すると、varはBで指定されたデフォルトに設定されます(メインのプログラムの影響を受けることはありません) – SomeRandomGuy

+0

メインプログラムのインスタンスが 'B'と同じであることを確認する必要があります。 – danielunderwood

+0

これを行う方法はありますか?メインファイルとクラスAの両方でBのインスタンスを同じにして、編集すると自動的に別のインスタンスで編集されるようにしますか? – SomeRandomGuy

関連する問題