[解決済み] Pythonにおける循環的なインポート
2022-03-21 08:25:34
質問
2つのモジュールが互いにインポートしあうとどうなりますか?
この問題を一般化するために、Pythonの循環的なインポートはどうでしょうか?
どのように解決するのか?
で、この件に関してとても良い議論がありました。 comp.lang.python 昨年 あなたの質問に徹底的に答えています。
<ブロッククオート輸入は実に簡単です。ただ、次のことを忘れないでください。
'import' と 'from xxx import yyy' は実行可能な文です。これらは 実行中のプログラムがその行に到達したとき
モジュールがsys.modulesにない場合、importは新しいモジュールを作成します。 のエントリーを作成し、そのモジュールに含まれるコードを実行します。これは は、実行が完了するまで呼び出し元のモジュールに制御を戻します。
モジュールがsys.modulesに存在する場合、importは単にそのモジュールを返します。 の実行が終了しているか否かにかかわらず。これが 循環的なインポートでは、部分的に空になったように見えるモジュールを返すことがあります。
最後に、実行中のスクリプトは __main__ という名前のモジュールで実行されます。 とは無関係の新しいモジュールが作成されます。 __main__.
これらのことを考慮すれば、インポートする際に驚くことはないはずです。 モジュールになります。
関連
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] 億の相対的輸入
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み】ValueError: xとyは同じサイズでなければならない