1

file1.py で:

      def test1():
        print "hi"

file2.py で:

      from file1 import test1

      def test2():
        print "hello"

      test1()
      test2()

出力:

      hi
      hello

ファイル 1 に test2 を含めると、次のエラーが発生します。

    from file2 import test2

    def test1():
      print "hi"

   Traceback (most recent call last):
   File "file1.py", line 1, in ?
   from file2 import test2
   File "/root/pyt/file2.py", line 1, in ?
   from file1 import test1
   File "/root/pyt/file1.py", line 1, in ?
   from file2 import test2
  ImportError: cannot import name test2

理由とそれを機能させる方法を説明できますか?

4

2 に答える 2

4

これは循環インポートの問題です。file2からインポートfile1し、最上位レベルで再度file2インポートしてfile1います。これは、1インポートしないとロードできず、`1 をインポートしない2とロードできないことを意味します。2

それを機能させる方法については、何をしたいのか説明できますか? これらの関数を両方とも同じモジュールに入れて、一度にインポートしてみませんか?

于 2010-12-08T12:44:06.527 に答える
2

アクセスしようとした時点で、その名前はモジュールに存在しません。

于 2010-12-08T12:45:16.090 に答える