为什么Python不调用模块中的函数?

时间:2018-09-03 01:47:14

标签: python function module attributes biopython

我意识到这是一个古老的问题,但是我正在对其进行更新,希望我的问题会更加清楚。

尝试执行前面提到的代码时出现错误。我执行以下操作:

QueueTriggerAttribute

出现以下错误:

import Bio.PDB.ResidueDepth as res_depth

surface = res_depth.get_surface(model)

我正在尝试导入模块并在此模块中调用函数。模块中有一个ResidueDepth类,但是我不需要使用它。有没有一种方法可以只调用函数而不调用类?

如果有用,这里是ResidueDepth.py源代码:

Traceback (most recent call last):
  File "setupPpiDb.py", line 489, in <module>
    calcEnergyTerms(pdbsToAnalyzeWithChains)
  File "setupPpiDb.py", line 446, in calcEnergyTerms
    surface = res_depth.get_surface(model)
AttributeError: type object 'ResidueDepth' has no attribute 'get_surface'

1 个答案:

答案 0 :(得分:1)

您应该针对ResidueDepth的实例而不是抽象类进行工作。试试类似的东西:

from Bio.PDB.PDBParser import PDBParser
import Bio.PDB.ResidueDepth as res_depth

parser = PDBParser()
structure = parser.get_structure('1FAT.pdb')
model = structure[0]
rd = res_depth(model)
surface = rd.surface

否则,您可以访问该代码中定义的方法,但它们不属于ResidueDepth。您可以独立导入它们。