python - Python模块内部/外部导入
问题描述
例子。
假设我有这样的结构:
mypkg
├── __init__.py
├── class1.py
├── class2.py
└── functions
└── func.py
mypkg
是一个包含两个文件(除了__init__.py
[空文件])和一个目录的模块:
class1.py
: 包含一个名为的类,该类ClassOne
使用functions/func.py
.
from .functions.func import f1, f2
Class ClassOne:
...
class2.py
: 包含一个名为的类,该类ClassTwo
也使用functions/func.py
.
from .functions.func import f1, f2
Class ClassTwo:
...
functions
: 目录,其中包含func.py
. 后者包含两个功能。
def f1():
...
def f2():
...
问题。
我想知道两件事:
模块的内部导入:有没有办法为两个类文件(
class1.py
和class2.py
)定义一个公共导入,这样我就不必from .functions.func import f1, f2
为每个类复制导入行,即只定义一次导入行(可能在:__init__.py
)。如果是,该怎么做?模块的外部导入:有没有办法使用而不是 导入定义的模块
mypkg
(当然,从模块本身的外部)。也就是说,我想直接从模块访问该类,而不通过其包含文件。from mypkg import ClassOne
from mypkg.class1 import ClassOne
解决方案
推荐阅读
- settings - 查询输出“缩短” - 数据输出受限
- php - 如何获取PHP中特定字符之间的动态字符串值
- c# - 数据库功能
- macos - 莫哈韦的核心恐慌
- ios - 在 ios 的 firebase 中读取大型数据库的数据很慢
- reactjs - colorBars 在 BarChat react.js 中不起作用
- java - Azure 函数。从 VS Code 调试 java。无法连接到被调试虚拟机
- linux - 从脚本文件获取环境变量输入未按预期工作
- php - 控制用户是否使用任何 $_GET[' ?? '] 网址方法
- java - 如何在使用 KafkaProducer 时获得最佳并发性能?