擅长:python、mysql、java
<p>假设您确实需要这样做(处理类型列表),并且不能使用像<code>__all__</code>这样只工作一次的技巧(每个模块一个这样的特殊列表),那么:</p>
<pre><code>def gettypes(types):
thismodule = sys.modules[__name__]
for t in types:
setattr(thismodule, t.__name__, t)
</code></pre>
<p>像这样使用:</p>
<pre><code>import a
gettypes(a.aTypes)
</code></pre>
<p>我很难想象你为什么需要这个,但那不是我的问题;-)</p>
<p>注意<code>__name__</code>的使用意味着这通常不适用于符号,只适用于类、模块、函数和我忘记的任何其他东西(或者适用于您自己设计的具有<code>__name__</code>的对象)。它也不适用于在模块中使用别名的内容,例如在模块中写入<code>Baz = Bar</code>,然后在列表中使用<code>Baz</code>。如果列表是<code>['Foo', 'Bar']</code>而不是<code>[Foo, Bar]</code>,并且您还将源模块传递到<code>gettypes</code>,那么您可以避免这些限制。你知道吗</p>