<p>我有一个外部定义的模块,其中有许多方法。我可以用dir()得到所有方法,比如<code>print(dir[Descriptors])</code>和<code>['BalabanJ', 'BertzCT',...]</code>。现在我想将所有方法应用于一个值列表[x1,x2,…]。如果我直接使用<code>Descriptors.BalabanJ(x1)</code>,它就可以工作了。但是,我想做一个像这样的循环</p>
<pre><code>from rdkit.Chem import Descriptors
for i in dir[Descriptors]:
for x in [x1,x2,x3]:
print(Descriptors.i(x))
</code></pre>
<p>,它说描述符中没有方法i。我该如何实现这一点?你知道吗</p>
<p>我想<code>getattr</code>就是你要找的</p>
<pre><code>from rdkit.Chem import Descriptors
for i in dir(Descriptors):
if callable(i):
for x in [x1,x2,x3]:
print(getattr(Descriptors ,i)(x))
</code></pre>