質問

これを理解できません。ターミナルで、クラスをインスタンス化するモジュールをインポートしますが、アクセス方法はわかりません。もちろん、私はいつでもターミナルでインスタンス化できます:

Server=Data.ServerData()

その後、結果を得ることができます:

Server.Property().DefaultChart

ただし、モジュールで既に実行されているインスタンスから直接結果を取得するステップをスキップします。この場合のData.Serverは、データをインポートしたときからサーバーインスタンスをロードするはずだと思います。

Data.Server.Property().DefaultChart

>>> AttributeError: 'module' object has no attribute 'Server'

では、ターミナルから実行中のインスタンスにアクセスするにはどうすればよいですか

役に立ちましたか?

解決

Data.py をインポートすると、 Data.ServerData クラスのインスタンスが暗黙的に作成されます(多少疑わしいですが、場合によっては問題ありません)。そのモジュールは、その1つのインスタンスに名前を付けることを選択しました。 >>> プロンプトで dir(Data)を実行して、 Data モジュールで定義されているすべての名前を表示します。 Data.ServerData のインスタンスである値を持つ名前(ある場合)を確認する場合:例:

>>> [n for n in dir(Data) if isinstance(getattr(Data,n), Data.ServerData)]

Data.py のソースコードを読む方が簡単かもしれませんが、何が起こっているのか(そして期待したものとどのように違うのかを知るために、そのような内省のための他の多くのオプションがあります[[何に基づいているのかわからない!]]

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top