擅长:python、mysql、java
<p>您可以(也可能应该)将<code>__init__.py</code>中的<code>__all__</code>定义为包中的子模块列表;这样就可以支持人们执行<code>from Plugins import *</code>。如果已经这样做了,那么可以使用</p>
<pre><code>import Plugins
import sys
modules = { }
for module in Plugins.__all__:
__import__( module )
modules[ module ] = sys.modules[ module ]
# iterate over dir( module ) as above
</code></pre>
<p>这里发布的另一个答案失败的原因是<code>__import__</code>导入了最低级别的模块,但是<em>返回了顶层模块(参见<a href="http://docs.python.org/library/functions.html#__import__" rel="noreferrer">docs</a>)。我不知道为什么。在</p>