问题现象:
运行如下代码:
class Digua:
def __init__(self):
"""原始地瓜,所有参数初始化"""
# 地瓜烤制时间归零
self.cook_time = 0
# 地瓜烤制状态
self.status = "生的"
# 地瓜调味
self.taste = []
def __str__(self):
return f"这个地瓜烤制了{self.cook_time}分钟,当前状态是{self.status},选择的调料口味为{self.taste}"
def cook_time(self, time):
"""烤制地瓜的时间"""
# 地瓜整体烤制时间
self.cook_time += time
# 使用整体时间判断地瓜烤制状态
if 0 <= self.cook_time < 3:
self.status = "生的"
elif 3 <= self.cook_time < 5:
self.status = "半生不熟"
elif 5 <= self.cook_time < 8:
self.status = "熟的"
elif self.cook_time >= 8:
self.status = "糊了"
digua1 = Digua()
digua1.cook_time(2)
print(digua1)
出现如标题所示的报错
TypeError: 'int' object is not callable
原因分析:
这是一个新手容易犯的问题,根本原因是cook_time
既作为一个变量名,又作为了一个函数名,两者重名了。在调用时,程序会误认为在调佣这变量而不是函数,从而报错不可调用
解决方法:
修改变量名称或者函数名称,使两者不再重名即可