原文: Typeerror: int object is not callable – How to Fix in Python
在 Python 中,当你在一个操作中使用不同的数据类型时,会发生 “Typeerror”。
例如,如果你试图用一个整数(数字)除以一个字符串,就会导致一个 typeerror
,因为整数的数据类型与字符串不一样。
其中一个类型错误是 “int object is not callable” 错误。
当你声明一个变量并以内置函数名称(int()
、sum()
、max()
等等)命名时,就会发生 “int object is not callable” 错误。
当你在进行数学运算时没有指定算术运算符,也会发生这个错误。
在这篇文章中,我将向你展示该错误是如何发生的,以及你可以做什么来修复它。
如何修复内置函数名中的 Typeerror: int object is not callable
如果你用一个内置函数名作为变量,并把它作为一个函数调用,会出现 “int object is not callable” 错误。
例如,下面的代码试图用 Python 的内置 sum()
函数来计算一些孩子的总年龄。这段代码导致了一个错误,因为同样的 sum
已经被用作变量名了:
kid_ages = [2, 7, 5, 6, 3]
sum = 0
sum = sum(kid_ages)
print(sum)
在下面的另一个例子中,我使用 max()
函数来获得这些孩子中最年长的,但我已经声明了一个 max
变量:
kid_ages = [2, 7, 5, 6, 3]
max = 0
max = max(kid_ages)
print(max)
这两个代码例子在终端都出现这个报错:
为了解决这个问题,你需要修改和内置函数相同的变量的名称,这样代码才能成功运行:
kid_ages = [2, 7, 5, 6, 3]
sum_of_ages = 0
sum = sum(kid_ages)
print(sum)
# Output: 23
kid_ages = [2, 7, 5, 6, 3]
max_of_ages = 0
max = max(kid_ages)
print(max)
# Output: 7
如果你不使用内置函数的名称作为变量名,你的代码仍将按预期运行:
kid_ages = [2, 7, 5, 6, 3]
sum = sum(kid_ages)
print(sum)
# Output: 23
kid_ages = [2, 7, 5, 6, 3]
max = max(kid_ages)
print(max)
# Output: 7
如何修复数学运算中的 Typeerror: int object is not callable
在数学中,如果你做像 4(2+3) 这样的事情,你会得到正确的答案是 20。但在 Python 中,这将导致 Typeerror: int object is not callable
错误。
为了解决这个错误,你需要让 Python 知道你想把括号外的数字与括号内的数字之和相乘。
要做到这一点,你可以在括号前面指定一个乘法符号(*):
print(4*(2+3))
#Output: 20
Python 允许你在开始括号前指定任何算术符号。
所以,你也可以像这样进行其他运算:
print(4+(2+3))
# Output: 9
print(4-(2+3))
# Output: -1
print(4/(2+3))
# Output: 0.8
小结
Typeerror: int object is not callable
是 Python 中的一个初级错误,你可以用简单的方法来避免。
正如本文所示,你可以通过不使用内置函数名作为变量名并在必要时指定运算符号来避免这个错误。
感谢阅读。