Мне удобнее пользоваться ключами dict как obj.foo
вместо obj ['foo']
, поэтому я написал этот фрагмент:
class AttributeDict(dict):
def __getattr__(self, attr):
return self[attr]
def __setattr__(self, attr, value):
self[attr] = value
Однако я предполагаю, что должна быть какая-то причина, по которой Python не t предоставляют эту функциональность из коробки. Каковы будут предостережения и подводные камни при доступе к ключам dict таким способом?
Это - то, что я использую
args = {
'batch_size': 32,
'workers': 4,
'train_dir': 'train',
'val_dir': 'val',
'lr': 1e-3,
'momentum': 0.9,
'weight_decay': 1e-4
}
args = namedtuple('Args', ' '.join(list(args.keys())))(**args)
print (args.lr)