@songying
2018-07-12T15:48:29.000000Z
字数 319
阅读 986
python特殊方法
__hash__(self)
定义对类的实例调用 hash() 时的行为。它必须返回一个整数,其结果会被用于字典中键的快速比较。
同时注意一点,实现这个魔法方法通常也需要实现 __eq__
,并且遵守如下的规则: a == b 意味着 hash(a) == hash(b)。
__bool__(self)
定义对类的实例调用 bool()
时的行为,根据你自己对类的设计,针对不同的实例,这个魔法方法应该相应地返回True或False。
bool(x) 的背后是调用x.__bool__()
的结果;如果不存
在 __bool__
方法,那么 bool(x) 会尝试调用 x.__len__()
。若返回 0,则 bool 会返回
False;否则返回 True。