python在类的继承方面的小困惑

我在学习python时遇到了一个很奇怪的问题:

>>> class hhh(int):
    def __init__(self,number):
        self.number = number
    def __add__(self,others):
        return int.__add__(self.number,others)

    
>>> a = hhh(3)
>>> b = 4
>>> a + b
7
>>> b = hhh(4)
>>> a + b
7
>>> class hhh:
    def __init__(self,number):
        self.number = number
    def __add__(self,others):
        return int.__add__(self.number,others)

    
>>> a = hhh(3)
>>> b = 4
>>> a + b
7
>>> b = hhh(4)
>>> a + b
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    a + b
TypeError: unsupported operand type(s) for +: 'hhh' and 'hhh'

以上代码几乎完全相同,除了一个类继承了int,另一个没有(类名随便起的^_^),对于这两个类进行的简单的运算尝试也是一样的,但结果一个很正常,一个却报错。本人初学者一枚,不太理解其中的原理,哪位兄弟帮个忙解释一下,万分感谢了^_^。

class hhh:
    def __init__(self,number):
        self.number = number
    def __add__(self,others):
        return int.__add__(self.number,others.number)

others加上.number属性,这样就没问题了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632