问题现象:
运行如下代码:
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
既作为一个变量名,又作为了一个函数名,两者重名了。在调用时,程序会误认为在调佣这变量而不是函数,从而报错不可调用
解决方法:
修改变量名称或者函数名称,使两者不再重名即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构