调用函数时出现报错:
我的函数:
def RMSE(y, out):
sum1 = 0
for i in range(len(y)):
sum1 = sum1 + (y.iloc[i] - out.iloc[i]) ** 2
RMSE = (sum1 / len(y)) ** 0.5
return RMSE
调用:
return RMSE(y, outs)
查找资料后,找到两个原因:
- 函数名冲突
如果你的代码中有一个变量名与内置函数名相同,那么在执行代码时就会出现 “TypeError: ‘int’ object is not callable” 的报错信息。 - 调用代码错误
我们可能会使用错误的方式调用函数,例如:result = 10(5),这里我们试图使用整数 10 来执行函数操作,然而整数是不支持调用的,因此就会出现 “TypeError: ‘int’ object is not callable” 的错误。
很明显我是第一种,修改代码为:
def my_RMSE(labels, res):
sum1 = 0
for i in range(len(labels)):
sum1 = sum1 + (labels.iloc[i] - res.iloc[i]) ** 2
RMSE = (sum1 / len(labels)) ** 0.5
return RMSE
#调用
my_RMSE(y, outs)
问题解决。