Например, предположим, что я делаю это:
>>> class foo(object):
... pass
...
>>> class bar(foo):
... pass
...
>>> some_dict = { foo : 'foo',
... bar : 'bar'}
>>>
>>> some_dict[bar]
'bar'
>>> some_dict[foo]
'foo'
>>> hash(bar)
165007700
>>> id(bar)
165007700
Исходя из этого, похоже, что класс хешируется в качестве своего идентификатора. Следовательно, не должно быть никакой опасности беспокоиться о, скажем, хешировании bar
, когда меняются либо значения foo
, либо bar
, либо значения хеш-функции, если я изменяю класс.
Надежно ли это поведение, или здесь есть какие-то ошибки?