Python 有人能帮我看一下吗,我能';我不知道如何修复它:TypeError:';功能';对象没有属性'__获取项目';

Python 有人能帮我看一下吗,我能';我不知道如何修复它:TypeError:';功能';对象没有属性'__获取项目';,python,Python,我很确定问题出在哪里,但我不确定如何解决 迄今为止,守则: def parseFasta(fasta): sequence = "" fasta = open("rosalind_lcsm.fasta", "r") for line in fasta: if ">" in line: pass else: sequence += line.strip() return sequence.split() def h

我很确定问题出在哪里,但我不确定如何解决

迄今为止,守则:

def parseFasta(fasta):
 sequence = ""
 fasta = open("rosalind_lcsm.fasta", "r")
 for line in fasta:
      if ">" in line:
           pass
      else:
           sequence += line.strip()
 return sequence.split()

def hid_motif(data):
  substrs = lambda x: {x[i:i+j] for i in range(len(x)) for j in range(len(x) - i + 1)}
  s = (substrs(data[0]))
  for val in data[1:]:
    s.intersection_update(substrs(val))
  return max(s, key=len)

print hid_motif(parseFasta)
错误:

File "hmotif.py", line 18, in <module>
print hid_motif(parseFasta)
  File "hmotif.py", line 13, in hid_motif
s = (substrs(data[0]))
文件“hmotif.py”,第18行,在
打印hid_图案(parseFasta)
文件“hmotif.py”,第13行,在hid_motif中
s=(子项(数据[0]))

数据
是您传入的函数
parseFasta
。您不能将
[]
符号用于函数

也许您想调用
parseFasta
函数,该函数将传入结果,而不是函数本身。但是你需要一个论点。

就像刚才提到的那样

因为您已经声明了函数

def parseFasta(fasta):
   ...
它需要一个输入参数

您需要键入:

print hid_motif(parseFasta(input_argument))
其中,input_参数是
parseFasta(Fasta)
函数的必需输入
即:Fasta将复制
输入参数的值

parseFasta
是一个函数,而不是
数据
列表。尝试:
hid\u motif(parseFasta())
基于您定义的内容。注意:您必须将
parseFasta
作为函数调用,并将输出传递给
hid\u motif
。最后一行:
print hid\u motif(parseFasta)
应该是
print hid\u motif(parseFasta())
。注意,我在末尾添加了括号,因为您告诉编译器执行一个函数。当你只做
parseFasta
时,你会传入(天知道怎么做)一个函数本身……请不要试图弄清楚最后一部分,它可能会很混乱。谢谢!现在来看内存错误…既然初始输入参数是fasta,那么它会是: