zoukankan      html  css  js  c++  java
  • [TimLinux] Python __hash__ 可哈希集合

    规则:

    __hash__ 应该返回一个整数,hash()函数计算基础类型的hash值

    可哈希集合:set(), forzenset(), dict() 三种数据结构操作要求 key 值唯一,判断唯一的方法是 hash 值。

    自定义的类能否作为 key 值存在,要求自定义的类创建的对象为可哈希计算。

    __hash__ 函数返回整数值,用来确定对象在哈希集合中的位置(哈希集合比喻为很多的桶,__hash__返回的是桶的位置)

    __eq__ 函数用来当多个对象当__hash__值相同(来个对象要进入同一个桶)时,新来的对象能不能取代之前的对象(__eq__相等,不能取代,__eq__不等,可取代)。

    规则:

    只定义了:__eq__,则 __hash__ 被Python默认设置为 None

    只定义了:__eq__,且类为可变,__hash__如果想定义则只能设置为None

    定义了:__eq__,__hash__,类必须为不可变对象。

    __eq__相等,__hash__必须相等,

    __hash__相等,__eq__可以不等(后来的取代之前的)

  • 相关阅读:
    第一周(LNMP-Nginx_php-fpm-80转443)
    mysql编译安装
    PB中的DataStore的应用示例
    linux 安装 rabbitmq
    php 扩展 rabbitmq popt
    mongodb基本指令
    单点登录
    js调用打印机打印
    nginx开启tls1.2及一些注意问题
    蓝桥杯2017年省赛A组题目总结
  • 原文地址:https://www.cnblogs.com/timlinux/p/11833579.html
Copyright © 2011-2022 走看看