Python类中的名称错误

时间:2014-11-09 19:34:27

标签: python class nameerror

我正在上课:

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

有人可以告诉我哪里出错了吗?

1 个答案:

答案 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?'''

然后你可以继续为这个对象定义另一个函数/方法。