pythonループインポート
755 ワード
Flaskの学習中に発生したループインポートの問題を記録します.
ループインポートとは?
栗はとても簡単で、今a.py、b.py、c.pyの3つのバッグがあって、b.pyの中でa.pyを導入して、c.pyの中でb.pyを導入して、a.pyの中でc.pyを導入して、それから勝手に1つのファイルを入り口にしてプログラムを実行します
a.pyをプログラムの入り口とすると、次のようになります.
a.pyを実行するとインポートエラー(以下のように)が報告されます.詳しくはcore-python(pythonコアプログラミング)で紹介されています.時間があればご覧ください.
ポイントは、どのように解決するかです.(直接最も現実的な方法)は、ループを生成するパケットを関数に入れて呼び出す.例えば、さっきのa.pyはこのように に変更することができる.プログラムの実行順序を知っていればimport順序を調整する方法で解決することもできますが、私が試みた結果、これは100%の問題を解決することはできません. (究極の解決策)再構築しましょうか(逃げる.)
ループインポートとは?
栗はとても簡単で、今a.py、b.py、c.pyの3つのバッグがあって、b.pyの中でa.pyを導入して、c.pyの中でb.pyを導入して、a.pyの中でc.pyを導入して、それから勝手に1つのファイルを入り口にしてプログラムを実行します
a.pyをプログラムの入り口とすると、次のようになります.
import c
def test():
print('this a')
c.test()
a.pyを実行するとインポートエラー(以下のように)が報告されます.詳しくはcore-python(pythonコアプログラミング)で紹介されています.時間があればご覧ください.
ImportError: cannot import name XX
ポイントは、どのように解決するかです.
def test():
print('this a')
def run():
import c
c.test()