擅长:python、mysql、java
<p>如果您使用的是python3.7+,那么可以使用在<a href="https://www.python.org/dev/peps/pep-0562/" rel="nofollow noreferrer">PEP562</a>中定义的模块级<code>__getattr__</code>。你知道吗</p>
<p>您可以将subpackageA重命名为subpackageB,然后在<code>package/__init__.py</code>中有如下内容</p>
<pre><code>from . import subpackageB
from warnings import warn
def __getattr__(name):
if name == 'subpackageA':
warn('subpackageA has been renamed to subpackageB')
return subpackageB
raise AttributeError('No module named ' + name)
</code></pre>
<p>那么在使用你的软件包时</p>
<pre><code>>>> from package import subpackageB
>>> from package import subpackageA
/path/to/package/__init__.py:5: UserWarning: subpackageA has been renamed subpackageB
warn('subB has been renamed subA')
>>> subpackageA == subpackageB
true
>>>
</code></pre>