在自學(xué)python3.5.中,嘗試重寫魔法方法,為什么沒有效果?class?New_int(int):
???def?_add_(self,other):
???????return?int.__sub__(self,other)
???def?__sub__(self,?other):
???????return??int.__add__(self,other)
a=New_int(3)
b=New_int(5)
print(a+b)代碼輸出還是8,沒有調(diào)用我重新定義過的兩個方法,請問是哪里有問題?初學(xué)者,不太明白,謝謝大神
4 回答

孤獨的小豬
TA貢獻(xiàn)232條經(jīng)驗 獲得超302個贊
重寫魔法方法是生效的,剛才試了一下,是因為你重寫的時候,add前后都少寫一個下劃線。
class?New_int(int): ???def?__add__(self,other): ???????return?int.__sub__(self,other) ???def?__sub__(self,?other): ???????return??int.__add__(self,other) a=New_int(3) b=New_int(5) print(a+b)
添加回答
舉報
0/150
提交
取消