我有一个包含大量子包的python包,我最近重写了很大一部分,并重命名并重新组织了包和对象。
例如,在过去,我会导入类似
的内容from package import MyClass
但是现在应该是
from package.subpackage import MyClass
为了向后兼容,我在旧位置创建了符号,用于导入和使用新命名空间中的模块和对象。
在/package/__init__.py
from .subpackage import MyClass
当有人试图导入或访问其中一个旧命名空间位置时,是否有办法提出弃用警告?有了课,我可以使用__getattr__
。是否有类似的机制来捕获模块和包上的属性访问?