报错与解决 | ‘numpy.ndarray‘ object is not callable

文章目录

  • 报错
  • 报错分析
  • 解决办法

报错

在用librosa和soundfile写音频时,报错:'numpy.ndarray' object is not callable

报错代码如下:

import librosa

def noise(song):
	pass

if "__name__" == "__main__":
	y1, _ = librosa.load("D:/songs/summer.wav")
	noise = noise(y1)
	...
	y2, _ = librosa.load("D:/songs/jazz.wav")
	noise = noise(y2)  # 报错
	...

报错分析

因为在上述代码中,笔者 变量名函数名设置成一样的了,导致在noise(y2)这句代码执行时,程序以为这里的noise变量,而不是函数名,因此而报错。

解决办法

变量名和函数名尽量不要设置为一样的,否则程序执行时会犯迷糊!

因此,将变量名重新修改一下,和函数名区分开,如下:

if "__name__" == "__main__":
	y1, _ = librosa.load("D:/songs/summer.wav")
	song_noise1 = noise(y1)
	...
	y2, _ = librosa.load("D:/songs/jazz.wav")
	song_noise2 = noise(y2) 
	...

报错解决!


参考:出现’numpy.ndarray’ object is not callable报错,此类错误一般是由于内部函数被用作变量名时发生。

你可能感兴趣的:(报错与解决,numpy,python,开发语言)