1. 集合(set)元素去重的判断依据是什么
__hash__
方法只是返回一个
hash
值作为
set
的
key
,但是
去重 ,
还需要
__eq__
来判断
2
个对象是否相等hash值相等,只是
hash
冲突,不能说明两个对象是相等的。因此,一般来说实现 __hash__
方法,要同时实现
__eq__
方法,
去重
依赖
__eq__
方法
2. 总结本周视频讲解魔术方法的作用及什么情况会执行到该方法
- __new__ :实例化一个对象该方法需要返回一个值,如果该值不是cls的实例,则不会调用__init__该方法永远都是静态方法
- __bool__ :内建函数bool(),或者对象放在逻辑表达式的位置,调用这个函数返回布尔值。 没有定义 __bool__ (),就找 __len__ ()返回长度,非0为真。如果 __len__ ()也没有定义,那么所有实例都返回真
- 可视化
- 运算符
- 容器相关方法
- __call__ :类中定义一个该方法,实例就可以像函数一样调用
- 上下文管理
- 反射