我在学习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,另一个没有(类名随便起的^_^),对于这两个类进行的简单的运算尝试也是一样的,但结果一个很正常,一个却报错。本人初学者一枚,不太理解其中的原理,哪位兄弟帮个忙解释一下,万分感谢了^_^。