Это потому, что EasyDict
преобразует любое значение dict
в EasyDict
. И сделать атрибут из ключей. int
значения не могут быть атрибутами, поэтому это не сработает. Вы можете установить PermissiveDict
, что аналогично EasyDict
, но не пытается преобразовать значения в его собственный тип.
pip install permissive-dict
Ваш пример:
from permissive_dict import PermissiveDict
cfg = PermissiveDict()
cfg.tt = {'0': 'aeroplane'} # this is ok
cfg.tt = {0: 'aeroplane'} # this does not raise errors, but this is what I want to use!
cfg.tt[0]) == cfg.TT[0] == cfg.tT[0] == cfg.Tt[0] == 'aeroplane'