Я часто пишу следующий код:
print('object', 'moved', 'from =', object.location, 'dest =', new_location)
print('object', 'created', 'at =', object.location, 'status =', status)
и т. Д.
Я планировал заменить все эти функции log
:
def log(self, action, **details):
print('object', action, end = '')
for var, value in state.items():
print(var, '=', value, end = '')
print()
Это почти работает - за исключением двух проблем. Во-первых, я не могу контролировать порядок вывода, и это важно для меня. Конечно, details
- это просто словарь, поэтому порядок параметров теряется. Во-вторых, я не могу использовать какие-либо языковые ключевые слова, например, from
в качестве имени аргумента ключевого слова.
Есть ли какое-либо решение, которое позволяет избежать ненужного многословия, но не страдает от этих проблем?
Причина, по которой я хочу использовать функцию log
, заключается в том, что я могу захотеть отключить / включить ее или изменить формат в одном месте.