循環参照を使用して相互インポートを試みたときに「AttributeError: Module Object Missing Attribute」を解決するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-20 12:38:30
オリジナル
110 人が閲覧しました

How to Resolve

AttributeError: Module Object Missing Attribute

相互参照を持つ 2 つのモジュールをインポートしようとすると、「AttributeError: '」というエラーが発生することがあります。モジュールのオブジェクトには属性 [重複] がありません。」これは、モジュール構造が相互に依存しており、循環参照が発生する場合によく発生します。

説明

提供されたコードでは、モジュール 'a.py' が試行します。 「b.py」をインポートし、「b.py」内に「a.py」のインポートがあります。これにより循環依存関係が作成され、Python で「AttributeError」が発生します。

解決策

この問題を解決するには、トップレベル モジュール内での相互インポートを避けてください。代わりに、必要に応じて関数を使用してモジュールをインポートします。

Python の例

前:

<code class="python"># a.py
import b

# b.py
import a</code>
ログイン後にコピー

後:

<code class="python"># a.py
def call_b():
  import b
  b.hi()

# b.py
def hi():
  print("hi")</code>
ログイン後にコピー

これにより、「a.py」はトップレベルで「b.py」をインポートしなくなり、循環依存関係が解消されます。

以上が循環参照を使用して相互インポートを試みたときに「AttributeError: Module Object Missing Attribute」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!