2019-09-02 |

魔术方法

更多的魔术方法
__sub__ 用于 -
__mul__ 用于 *
__truediv__ 用于 /
__floordiv__ 用于 //
__mod__ 用于 %
__pow__ 用于 **
__and__ 用于 &
__xor__ 用于 ^
__or__ 用于 |
表达式x+y被翻译成 x.__add__(y)
但是,如果x没有实现__add__,并且x和y是不同类型的,则调用 y.__radd__(x) 。
刚才提到的所有魔法方法都有等价的R方法。

例如:


class SpecialString:
  def __init__(self, cont):
    self.cont = cont

  def __truediv__(self, other):
    line = "=" * len(other.cont)
    return "
".join([self.cont, line, other.cont])

spam = SpecialString("spam")
hello = SpecialString("Hello world!")
print(spam / hello)

结果:


>>>
spam
============
Hello world!
>>>
在上面的例子中,我们定义了我们的类特殊字符串的除法运算。

0

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论