Итак, я добавляю и обновляю словарь python. В настоящее время он выглядит довольно уродливым и его трудно читать, есть ли лучший способ сделать то же самое?обновление значений словаря python
if not transaction_id in self.transaction_log:
self.transaction_log[transaction_id] = {
'gross_total': 0,
'net_total': 0,
'qty_total': 0,
'tax_total': 0
}
self.transaction_log[transaction_id]['products'] = {}
# create a list of dics to be reused in
# other class methods
self.transaction_log[transaction_id].update({
'transaction_id': transaction_id,
'transaction_time': transaction_datetime,
'location_id': location_id,
'till_id': till_id,
'employee_id': employee_id,
})
self.transaction_log[transaction_id]['products'][product_id] = {
'gross': gross,
'net': net,
'tax': tax,
'qty': qty
}
self.transaction_log[transaction_id]['gross_total'] += gross
self.transaction_log[transaction_id]['net_total'] += net
self.transaction_log[transaction_id]['qty_total'] += tax
self.transaction_log[transaction_id]['tax_total'] += qty
Можем ли мы иметь немного больше контекста для этого кода? Просто код рефакторинга, который уже работает, обычно обрабатывается на http://codereview.stackexchange.com –
. Две вещи, которые я хотел бы предложить, - сделать ссылку на 'self.transaction_log [transaction_id]' в начале фрагмента, чтобы вы могли ссылаться на это как локальная переменная, и вы устанавливаете 'self.transaction_log [transaction_id] ['products'] = {}', но можете просто добавить ''products': {}' в правиле, указанном выше. –