我有一个包含许多类的模块(tools.py)。我想将它们提取到自己的“whyteboard.tools”包中,每个类都在自己的文件中。
但是,我之前从将所有类放在一个基目录中改为放在项目根目录下的包中,并且在加载以旧格式保存的 pickle 文件时遇到了问题。 (参见:https://stackoverflow.com/questions/2121874)。我必须在加载文件时对 sys.modules 字典进行猴子修补,然后再将其删除。恶心...
执行此操作的最佳方法是什么?
是否最好在包的 __init__
中导入我的每个类,否则我必须
from whyteboard.tools.pen import Pen
而不是
from whyteboard.tools import Pen
最佳答案
我通常会看到模块中的 init.py 执行以下操作:
from whyteboard.tools.pen import *
这样,您始终可以从 Whyteboard.tools 导入并引用此模块内的任何类,而无需知道它们的位置。您只需要了解 Whyteboard.tools 包提供的类即可。
关于python - 将包含 8 个以上类的模块拆分为一个包,每个类都在自己的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379662/