让自定义类使用操作符
使用Python魔法方法的一个巨大优势就是可以构建一个拥有Python内置类型行为的对象。这意味着你可以避免使用非标准的、丑陋的方式来表达简单的操作。
在一些语言中,这样做很常见:
if instance.equals(other_instance):
# do something
当然在 python 中也可以这样做, 但是这样做让代码变得冗长而混乱.
不同的类库可能对同一种比较操作采用不同的方法名称,这让使用者需要做很多没有必要的工作。
在 python 中运用魔法方法的魔力,我们可以定义方法 __eq__
, 然后前面代码可以替换为下面的代码:
if instance == other_instance:
# do something
这是魔法方法强大力量的一部分. 大部分的魔法方法允许我们创建自定义类型, 这些自定义类型可以像内置类型一样使用操作符.