今天,我正在讀一本關於python的書,並且我知道有一些神奇的方法,例如__add__
和__mul__
。我如何重寫魔術方法?
但是,在這本書中,沒有解釋如何使用它們。
所以,我試圖找出自己。但是,我無法弄清楚如何重寫魔術方法。 這是我試過的代碼。
>>> class Num(int):
... def __init__(self, number):
... self.number = number
... def __add__(self, other):
... self.number += other*100
... return self.number
...
>>> num = Num(10)
>>> num.number + 10
20
任何人都可以請幫我理解這些神奇的方法是如何工作的嗎?
如果你想'__add__'生效,你需要添加到'num',而不是'num.number'。試試'num + 10'。 – BrenBarn
哦,謝謝!有用!現在,我需要考慮如何利用這些神奇的方法。 – crzyonez777
請注意'__add__'不應該修改它操作的對象,而是返回一個新對象。你所做的基本上是'__iadd__'。通常情況下,可以這樣做:def __add __(self,other):return Num(self.number + other * 100)'和'def __iadd __(self,other):self。數字+ =其他* 100;返回自我' – glglgl