如何正确调用rdkit.Chem.PeriodicTable.GetAtomicWeight获取原子量?
RDKit PeriodicTable.GetAtomicWeight 参数传递错误解决方法
你遇到的错误是因为 GetAtomicWeight 是实例方法,而非类方法,必须先获取 PeriodicTable 的实例后才能调用,不能直接通过 Chem.PeriodicTable 类直接调用该方法。
正确用法示例
方法1:使用RDKit提供的默认周期表实例
from rdkit import Chem # 获取默认周期表实例 pt = Chem.GetPeriodicTable() # 传入元素符号获取原子量 print(pt.GetAtomicWeight('C')) # 也可以传入原子序数获取 print(pt.GetAtomicWeight(6))
方法2:手动实例化PeriodicTable
from rdkit import Chem # 创建PeriodicTable实例 pt = Chem.PeriodicTable() print(pt.GetAtomicWeight('C'))
错误原因说明
原代码直接调用 Chem.PeriodicTable.GetAtomicWeight('C'),相当于把字符串 'C' 作为第一个参数传递给了需要 PeriodicTable 实例的方法,不符合底层C++方法的签名要求(需要先传入实例,再传入元素符号/原子序数),因此触发 ArgumentError。
内容的提问来源于stack exchange,提问作者FireFly2000
相关产品推荐
相关产品推荐

