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

Python TypeError:'int'对象不可调用问题解决@property使用误区

修正方案

你的代码里存在几个明显错误,导致抛出TypeError,以下是具体问题和修复后的代码:

错误分析

  • 属性调用方式错误:tenvalue被@property装饰为属性,不是可调用方法,不能用obj.tenvalue()的方式调用,直接访问obj.tenvalue即可。
  • setter赋值错误:setter方法里错误地给self.name赋值,应该修改实例变量self._value,否则原属性不会更新。
  • 属性名拼写错误:obj.tenvalues = 22里多了一个s,正确属性名是tenvalue。
  • setter冗余返回值:setter方法不需要返回值,Python会忽略该返回结果。

修复后的代码

class MyClass:
    def __init__(self, value):
        self._value = value

    def show(self):
        print(f"Value is {self._value}")
    
    @property
    def tenvalue(self):
        return self._value * 10
        
    @tenvalue.setter
    def tenvalue(self, nv: int):
        self._value = nv  # 修正为更新self._value

obj = MyClass(10)
print(obj._value)
obj.tenvalue = 22  # 修正属性名拼写错误
print(obj.tenvalue)  # 直接访问属性,不要加()
obj.show()

运行输出

10
220
Value is 22

内容的提问来源于stack exchange,提问作者Raghav Coder PY

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:47:42