1. ホーム
  2. python

[解決済み] Python: 'from X import Y' でインポートされたコンポーネントYをリロードしますか?

2022-09-26 04:05:17

質問

Pythonで、モジュールXをインポートした後、インタプリタセッションで import X を使ってインポートした後、モジュールが外部で変更された場合、 モジュールをリロードするには reload(X) . そして、その変更は私のインタプリタセッションで利用可能になります。

モジュールXからコンポーネントYをインポートする際に from X import Y .

ステートメント reload Y は機能しません。なぜなら、Y はモジュールそのものではなく、モジュールの中のコンポーネント(この場合はクラス)に過ぎないからです。

インタプリタセッションを離れることなく(あるいはモジュール全体をインポートすることなく)、モジュールの個々のコンポーネントを再ロードすることは全く可能なのでしょうか?

EDITです。

明確にするために、質問は、インポートされた クラスまたは関数 Y から モジュール X で、パッケージ X のモジュール Y ではなく、変更時にリロードします。

どのように解決するのですか?

Yがモジュール(Xはパッケージ)である場合 reload(Y) は大丈夫でしょう -- そうでなければ、(私の雇用主のような) 優れた Python スタイルガイドがなぜ は決して インポート ただし モジュール(これは多くの素晴らしい理由のうちの1つですが、私がいくらそれが ではない は良い考えではない;-)。