首页 > 解决方案 > 在 for 循环中使用类方法

问题描述

我有一个外部定义的模块,其中包含许多方法。我可以使用 dir() 将所有方法作为列表print(dir[Descriptors])获取,并且得到一个列表['BalabanJ', 'BertzCT',...]。现在我想将所有方法应用于值列表 [x1, x2, ...]。如果我直接使用Descriptors.BalabanJ(x1)它就可以了。但是,我想像这样循环执行它们

from rdkit.Chem import Descriptors
for i in dir[Descriptors]:
    for x in [x1,x2,x3]:
        print(Descriptors.i(x))

,它说描述符中没有方法 i。我该如何实施?

标签: pythonpython-3.x

解决方案


我想这getattr就是你要找的

from rdkit.Chem import Descriptors
for i in dir(Descriptors):
    if callable(i):
        for x in [x1,x2,x3]:
            print(getattr(Descriptors ,i)(x))

推荐阅读