如何在同一目录或子目录中导入类?Python 2蟒蛇 3

2022-09-05 01:17:50

我有一个目录,存储所有.py文件。

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

我想在 main.py 中使用 user.pydir.py 的类。
如何将这些Python类导入 main.py
此外,如果 user.py 在子目录中,我该如何导入类?User

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

答案 1

Python 2

在与文件相同的目录中调用一个空文件。这将向Python表示“可以从此目录导入”。__init__.py

然后就做...

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

蟒蛇 3

与上一个相同,但在模块名称前面加上一个(如果不使用子目录):.

from .user import User
from .dir import Dir

答案 2

我刚刚了解到(感谢martineau的评论),为了从同一目录中的文件导入类,你现在可以用Python 3编写:

from .user import User
from .dir import Dir