如何在定义类时避免名称错误?

2024-05-19 00:43:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一节课:

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: global name 'kegg_gene_entry' is not defined

谁能告诉我哪里出了问题


Tags: namefromimportselfdatadefservicebio
1条回答
网友
1楼 · 发布于 2024-05-19 00:43:00

您的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?'''

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

相关问题 更多 >

    热门问题