【发布时间】:2011-06-21 02:00:40
【问题描述】:
我经常写如下代码:
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 功能的原因是我可能想禁用/启用它或在单个位置更改格式。
【问题讨论】:
标签: python function python-3.x argument-passing