Chris Angelico wrote:
The question then would be: why is object() not hashable?
It's not hashable because it's supposed to be the ultimate base type for all other objects, and not every object is hashable.
It only seems odd if you're used to the idea that you get a bunch of default behaviours from object, including hashability. But if you want strict subtyping and also an ultimate base type, the base type has to include very little behaviour.