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

Python类方法调用报错:TypeError: 'int' object is not callable

问题原因

你遇到的错误是因为实例属性Wiek和类方法Wiek重名。在__init__方法中,你给self.Wiek赋值为传入的整数WiekPsa=3,这会覆盖类中定义的同名Wiek()方法。当调用fafik.Wiek()时,Python会将Wiek识别为整数属性,而整数不是可调用对象,因此抛出TypeError。

解决方法

只需修改属性名或方法名避免重名即可,以下是两种可行方案:

方案1:修改属性名

将__init__中的self.Wiek改为符合Python命名规范的名称(小写加下划线),比如self.wiek_psa:

class Pies(Ssaki):
    def __init__(self, LiczbaKonczynPsa, ImiePsa, WiekPsa):
        self.LiczbaKonczyn = LiczbaKonczynPsa
        self.wiek_psa = WiekPsa  # 修改属性名
        self.Imie = ImiePsa

    def Przedstaw(self):
        print('Ten pies wabi się: ', self.Imie)
    def Konczyny(self):
        print('Ten pies posiada ', self.LiczbaKonczyn, 'kończyny')
    def Wiek(self):
        print('Wiek psa wynosi 6')

fafik = Pies(4, 'BOBO', WiekPsa=3)
fafik.Przedstaw()
fafik.Konczyny()
fafik.Wiek()  # 可正常调用方法

方案2:修改方法名

将Wiek()方法改为其他名称,比如wyswietl_wiek:

class Pies(Ssaki):
    def __init__(self, LiczbaKonczynPsa, ImiePsa, WiekPsa):
        self.LiczbaKonczyn = LiczbaKonczynPsa
        self.Wiek = WiekPsa
        self.Imie = ImiePsa

    def Przedstaw(self):
        print('Ten pies wabi się: ', self.Imie)
    def Konczyny(self):
        print('Ten pies posiada ', self.LiczbaKonczyn, 'kończyny')
    def wyswietl_wiek(self):  # 修改方法名
        print('Wiek psa wynosi 6')

fafik = Pies(4, 'BOBO', WiekPsa=3)
fafik.Przedstaw()
fafik.Konczyny()
fafik.wyswietl_wiek()  # 调用修改后的方法

建议遵循Python命名规范:实例属性和方法名使用小写字母加下划线,类名使用大驼峰格式,能有效减少这类命名冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:00:56