python - 如何在同一目录或子目录中导入类?

标签 python python-import

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

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

我想在 ma​​in.py 中使用来自 user.pydir.py 的类。
如何将这些 Python 类导入 ma​​in.py
此外,如果 user.py 在子目录中,我如何导入类 User

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

所以如果目录被命名为“classes”,那么你应该这样做:

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

Python 3

与之前相同,但如果不使用子目录,则在模块名称前加上 .:

from .user import User
from .dir import Dir

关于python - 如何在同一目录或子目录中导入类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4142151/

相关文章:

Python/django导入噩梦(独特案例)

使用nose进行测试的Python导入-在当前包之上导入模块的最佳实践是什么

python-3.x - 从另一个目录导入 Python 模块

python - 我应该在 __main__.py 中使用什么形式的导入,然后我应该如何运行该项目?

python - MySQL 和 Python : How to map the table data?

python - 将 Tensorflow 中除最大值以外的所有值归零

python - Pandas 数据帧 : resampling along integer index/grouping by groups of n elements

python - 调整内容大小时 QGridLayout 不更新?

python - Celery 队列和 Redis 队列

python - 从同一目录导入 __init__.py 和模块时 python 2.7 和 3.3+ 之间的区别