1. ホーム
  2. python

[解決済み] 同じディレクトリやサブディレクトリ内のクラスをインポートする方法は?

2022-03-23 02:55:47

質問内容

を格納するディレクトリがあります。 .py ファイルを作成します。

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

のクラスを使用したい。 user.py dir.py main.py .
これらのPythonクラスをどのように main.py ?
さらに、どのようにすればクラス User もし user.py がサブディレクトリにあるか?

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

解決方法は?

Python 2

という空のファイルを作成します。 __init__.py をファイルと同じディレクトリに配置します。これはPythonに「このディレクトリからインポートしても良いよ」というサインになります。

あとは...

from user import User
from dir import Dir

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

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

つまり、ディレクトリの名前が "class"であれば、次のようになります。

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

Python 3

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

from .user import User
from .dir import Dir