我有以下代码段:(我认为代码的其他部分并不重要。)
mol = editable_mol.GetMol()
neighbors = mol.GetAtomWithIdx(lastAtomIndex).GetNeighbors()
for nb_atom in neighbors:
atom_type, h_aro, h_alp, h_beta, h_gam = common.getAtomTypeAndHmnr(nb_atom)
if atom_type == 9:
common.setAtomTypeAndHmnr(nb_atom, 9, 0, 1, 0, 0)
Chem.EditableMol.ReplaceAtom(editable_mol, nb_atom.GetIdx(), nb_atom)
运行完美。但是,如果我使用editable_mol.GetMol()
而不是mol
这样的变量:
neighbors = editable_mol.GetMol().GetAtomWithIdx(lastAtomIndex).GetNeighbors()
for nb_atom in neighbors:
atom_type, h_aro, h_alp, h_beta, h_gam = common.getAtomTypeAndHmnr(nb_atom)
if atom_type == 9:
common.setAtomTypeAndHmnr(nb_atom, 9, 0, 1, 0, 0)
Chem.EditableMol.ReplaceAtom(editable_mol, nb_atom.GetIdx(), nb_atom)
程序给出错误。这意味着我必须使用mol变量。但是我不明白为什么我必须使用它。是否在python中定义了额外的变量而发生了变化?我认为这两个代码是相同的。
程序给出此错误,但我认为此错误与内容无关:
atom_type,h_aro,h_alp,h_beta,h_gam = common.getAtomTypeAndHmnr(nb_atom) 文件“ C:\ Users \ phitech_halil \ Documents \ Tupras Projects \ MolGenPython \ phitech \ common.py”,第302行,在 getAtomTypeAndHmnr返回int(atom.GetProp(KEY_ATOM_TYPE)), int(atom.GetProp(KEY_H_AROMATIC)),int(atom.GetProp(KEY_H_ALPHA)),\ KeyError:“ atom_type”
仅定义mol
变量不同,但是程序给出错误。我认为该问题不能与editable_mol
对象或GetMol()
函数有关。有什么主意吗?