Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 名称错误:名称';getTempo';没有定义_Python - Fatal编程技术网

Python 名称错误:名称';getTempo';没有定义

Python 名称错误:名称';getTempo';没有定义,python,Python,我在定义函数“getTempo”时出错,我不知道为什么。。。谢谢你的帮助 例如: L=[Musica("aerossol",4.9),Musica("lua",5.3),Musica("monte",3.2),Musica("rita",4.7)];getTempo("lua",L) 应提供: 卢阿:5.3 5.3 音乐类: 定义初始(自我、命名、节奏): self.nome=nome self.tempo=节奏 定义报告(自我): 返回self.nome+“:”+str(self.temp

我在定义函数“getTempo”时出错,我不知道为什么。。。谢谢你的帮助

例如:

L=[Musica("aerossol",4.9),Musica("lua",5.3),Musica("monte",3.2),Musica("rita",4.7)];getTempo("lua",L)
应提供:

卢阿:5.3

5.3


音乐类:
定义初始(自我、命名、节奏):
self.nome=nome
self.tempo=节奏
定义报告(自我):
返回self.nome+“:”+str(self.tempo)
def getTempo(nomeMusica,Listamusica):
如果ListaMusicas=[]:
打印(“不存在”)
其他:
meio=len(ListaMusicas)//2
打印(ListaMusicas[meio])
A=[i[0]表示列表中的i]
B=[i[1]表示列表中的i]
如果nomeMusica==A[meio]:
打印(B[meio])

elif nomeMusica在
python
中,与
Java
C++
等语言不同,必须在实例上访问实例属性和方法,因此必须编写
self.getTempo
,才能解析
getTempo

编辑-选择性阅读失败

您还需要确保所有方法定义都包含类实例本身的参数,这将是传递的第一个参数。按照惯例,这是
self
参数,但可以是您选择的任何名称。以下是修改后的函数定义:

def getTempo(self, nomeMusica,ListaMusicas): # Changed
    if ListaMusicas==[]:
        print ("Inexistente")
    else:
        meio=len(ListaMusicas)//2
        print (ListaMusicas[meio])
        A = [i[0] for i in ListaMusicas]
        B = [i[1] for i in ListaMusicas]

        if nomeMusica==A[meio]:
            print (B[meio])
        elif nomeMusica<A[meio]:
            return self.getTempo(nomeMusica,ListaMusicas[:meio]) # Changed
        else:
            return self.getTempo(nomeMusica,ListaMusicas[(meio+1):]) # Changed
def getTempo(self、nomeMusica、ListaMusicas):#更改
如果ListaMusicas=[]:
打印(“不存在”)
其他:
meio=len(ListaMusicas)//2
打印(ListaMusicas[meio])
A=[i[0]表示列表中的i]
B=[i[1]表示列表中的i]
如果nomeMusica==A[meio]:
打印(B[meio])

elif nomeMusicaHi,欢迎来到SO!请阅读这篇文章,了解如何提出更好的问题,这将帮助人们给你们更好的答案。特别是,请发布您收到的错误。对不起,我不明白,那我该怎么办?@diogo:使用
self.getTempo
而不是
getTempo
请查看我的编辑。你的函数定义缺少了更多的细节,即使在那之后也不会起作用。你的意思是说
getTempo
Musica
的方法还是在
Musica
实例的
列表中调用的函数?@mobiusklein是Musica的方法吗
def getTempo(self, nomeMusica,ListaMusicas): # Changed
    if ListaMusicas==[]:
        print ("Inexistente")
    else:
        meio=len(ListaMusicas)//2
        print (ListaMusicas[meio])
        A = [i[0] for i in ListaMusicas]
        B = [i[1] for i in ListaMusicas]

        if nomeMusica==A[meio]:
            print (B[meio])
        elif nomeMusica<A[meio]:
            return self.getTempo(nomeMusica,ListaMusicas[:meio]) # Changed
        else:
            return self.getTempo(nomeMusica,ListaMusicas[(meio+1):]) # Changed