python __hash__ & __eq__

__hash__

  • 要让对象可散列,就要实现其__hash__方法,常用方案是将对象中各个分量的散列值异或,构成整个向量对象的散列值。
    • 其中reduce是归约函数,其有三个参数,第一个是有两个操作数的函数,第二个是可迭代对象,第三个是可迭代对象为空时返回的默认值。
    • operator模块以函数的形式提供了python中全部中缀运算符,方便使用。

__eq__

  • 要让对象可散列的话,__hash__方法和__eq__方法要同时实现。
    • 其中zip函数用于并行迭代两个或更多的可迭代对象,当其中一个可迭代对象耗尽后,会不发出警告就停止。
    • itertools.zip_longest函数可以使用可选的默认值来填充缺失的值,然后继续产出直到最长的可迭代对象耗尽。
posted @ 2022-03-14 15:45  肖肖凯  阅读(82)  评论(0)    收藏  举报