在 python 中是否有任何可哈希的内置对象是可变的?
Is there any hashable built-in object is mutable in python?
想知道我们是否可以使用 hash() 来检查对象是否可变?
>>> from collections.abc import Hashable
>>> mutable = [list, bytearray, set, dict]
>>> immutable = [int, float, complex, str, tuple, frozenset, bytes]
>>> all(isinstance(x(), Hashable) for x in immutable)
True
>>> any(isinstance(x(), Hashable) for x in mutable)
False
所有可变对象都是不可散列的。
想知道我们是否可以使用 hash() 来检查对象是否可变?
>>> from collections.abc import Hashable
>>> mutable = [list, bytearray, set, dict]
>>> immutable = [int, float, complex, str, tuple, frozenset, bytes]
>>> all(isinstance(x(), Hashable) for x in immutable)
True
>>> any(isinstance(x(), Hashable) for x in mutable)
False
所有可变对象都是不可散列的。