定义额外的变量会导致Python错误

时间:2019-07-10 10:47:48

标签: python

我有以下代码段:(我认为代码的其他部分并不重要。)

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()函数有关。有什么主意吗?

0 个答案:

没有答案