同じディレクトリまたはサブディレクトリ内でクラスをインポートするにはどうすればいいですか? 質問する

同じディレクトリまたはサブディレクトリ内でクラスをインポートするにはどうすればいいですか? 質問する

すべての.pyファイルを保存するディレクトリがあります。

bin/
   main.py
   user.py # where class User resides
   dir.py # where class Dir resides

main.pyuser.pydir.pyのクラスを使用したいと思います。これらの Python クラスをmain.pyにインポートするにはどうすればよいでしょうか。さらに、 user.py がサブディレクトリにある場合、クラスをインポートするにはどうすればよいでしょうか。

User

bin/
    dir.py
    main.py
    usr/
        user.py

ベストアンサー1

Python 2

__init__.pyファイルと同じディレクトリにという空のファイルを作成します。これにより、Python に対して「このディレクトリからインポートしても問題ない」ことが示されます。

じゃあ、やってみよう...

from user import User
from dir import Dir

ファイルがサブディレクトリにある場合も同様です。__init__.pyサブディレクトリにも を配置し、ドット表記を使用した通常のインポート ステートメントを使用します。ディレクトリの各レベルごとに、インポート パスに追加する必要があります。

bin/
    main.py
    classes/
        user.py
        dir.py

したがって、ディレクトリの名前が「classes」の場合は、次のようにします。

from classes.user import User
from classes.dir import Dir

Python3 について

.前と同じですが、サブディレクトリを使用しない場合はモジュール名の前に a を付けます。

from .user import User
from .dir import Dir

おすすめ記事