3

mymodule.py次のコードを含むというモジュール ファイルがあります。

class foo:
    def __init__(self):
        self.foo = 1

class bar:
    import foo
    def __init__(self):
        self.bar = foo().foo

同じディレクトリ内の__init__.pyファイルには

from mymodule import foo

同じディレクトリのスクリプトから、次のコードがあります。

from mymodule import bar

を実行しようとするとbar()、エラーが発生しNo module named fooます。同じモジュール ファイル内で定義されている場合、 fooinのインスタンスを作成するにはどうすればよいですか?bar

4

2 に答える 2

5

クラスは最初にモジュール名でインポートされます。ただし、mymodule内からmymoduleにクラスをインポートする必要はなく、使用するだけです。意味:importfoo行を削除します

于 2013-02-07T22:49:08.117 に答える
5

同じモジュールで定義されたオブジェクトをインポートする必要はありません:

class foo:
    def __init__(self):
        self.foo = 1

class bar:
    def __init__(self):
        self.bar = foo().foo

このステートメントは、他のファイルでimport定義されたオブジェクトのみを対象としています。別の python ファイルで定義された名前を現在のモジュールにインポートします。

于 2013-02-07T22:52:49.027 に答える