假设我有 ClassA、ClassB 和 ClassC,它们分别位于各自的 .py 文件中ClassA.py,分别称为ClassB.py、 和ClassC.py。
# Inside ClassA.py
class ClassA:
pass
Run Code Online (Sandbox Code Playgroud)
在我的__init__.py最终结果是
from .ClassA import ClassA
from .ClassB import ClassB
from .ClassC import ClassC
Run Code Online (Sandbox Code Playgroud)
每次我添加一个新类(使用相同的结构)时,我都必须更改__init__.py. 鉴于此包中的所有文件都遵循相同的(不完全是Pythonic,但是哦)结构,是否有推荐的方法来自动执行此操作?
是的你可以。这就是importlib包的用途。它包含实际执行导入的较低级别的调用。它允许您通过调用它提供的方法来进行导入。
因此,您可以使用 Pythonos.path.listdir或其他方式来了解您的子包是什么,然后调用以importlib导入每个子包。
我自己还没有做过很多这样的事情。只要知道这个存在就足够了。也许其他人可以为您提供更多详细信息。另外,此链接可能对您有帮助:
https://dev.to/0xcrypto/dynamic-importing-stuff-in-python--1805
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |