我正在上课:
from bioservices import KEGGParser
class Retrieve_Data():
def __init__(self):
def hugo2kegg(self,gene_name,organism):
s=KEGGParser()
kegg_gene_entry = s.get(organism+':'+gene_name)
return kegg_gene_entry
a = Retrieve_Data()
但是当我运行这个时,我得到一个NameError:
NameError: global name 'kegg_gene_entry' is not defined
有人可以告诉我哪里出错了吗?
答案 0 :(得分:4)
你的init不能返回任何内容,如果你不打算使用你的定义,那么在定义任何内容时可能没有任何意义。你可能想要摆脱你的__init__
并做这样的事情:
from bioservices import KEGGParser
class Retrieve_Data():
def hugo2kegg(self,gene_name,organism):
s=KEGGParser()
kegg_gene_entry = s.get(organism+':'+gene_name)
return kegg_gene_entry
a = Retrieve_Data()
您不需要__init__
,除非您希望在实例化对象后立即发生事情。
如果你想要一个没有做任何事情的init,你需要在它下面有的东西:
class Retrieve_Data():
def __init__(self):
pass # we'll add more later?
或
class Retrieve_Data():
def __init__(self):
'''not doing anything now, maybe we'll write an init later?'''
和然后你可以继续为这个对象定义另一个函数/方法。