Python 名称错误:名称';getTempo';没有定义
我在定义函数“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
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