You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python报错'String object not callable':为何full_name无法像show_info那样调用?

问题原因

你给full_name方法添加了@property装饰器,这个装饰器的作用是将方法转换为类的属性——它会自动执行方法并返回结果,不需要手动加括号调用。当你写cake01.full_name()时,实际是先获取了full_name属性返回的字符串,再试图把这个字符串当作函数调用,因此触发'String object not callable'错误。

修复方案

有两种可选的修复方式:

  • 作为属性访问(保留@property):
    直接去掉调用时的括号,把cake01.full_name()修改为cake01.full_name,比如:
    print(cake01.full_name)
    
  • 作为方法调用(移除@property):
    删除@property装饰器,让full_name变回普通实例方法,此时加括号调用即可正常运行:
    # 移除@property装饰器
    def full_name(self):
        return "--== {} - {} ==--".format(self.name.upper(), self.kind)
    
    # 正常调用
    print(cake01.full_name())
    

内容的提问来源于stack exchange,提问作者jumi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 22:22:33