考虑以下场景:
您
M定义了m.py一个包含函数的模块f。可以这样调用:
import M; M.f()该模块增长到一个大小,在单个文件中是不切实际的。您拆分为子
M模块M.X,并将以下内容放入:M.YM.ZM/__init__.pyfrom .X import * from .Y import * from .Z import * __all__ = ["f"]原始代码仍然有效:
import M; M.f()
但是,代码的新使用者可能会错误地直接访问子模块:
import M.X;
M.X.f()
我想防止这种情况发生,这样所有代码仍然一致地直接寻址 M,而不是任何子模块。
子模块有利于内部代码组织,并且引用 M 留下了将来容易重组的可能性。
一种选择是命名子模块_X, _Y, 并_Z传达它们是内部的。这是推荐的方法吗?