海山闲谈

千里易见,跬步难积

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  5 随笔 :: 0 文章 :: 0 评论 :: 1829 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

问题现象
运行如下代码:

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既作为一个变量名,又作为了一个函数名,两者重名了。在调用时,程序会误认为在调佣这变量而不是函数,从而报错不可调用

解决方法
修改变量名称或者函数名称,使两者不再重名即可

posted on   不山  阅读(1065)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示