我有一些丑陋的代码写入一堆属性。看来我应该能够遍历列表来执行此操作。我将如何遍历['command','options','library']
并设置相关属性?
<snip>
try:
self.command = data_dict['command']
except KeyError:
pass
try:
self.options = data_dict['options']
except KeyError:
pass
try:
self.library = data_dict['library']
except KeyError:
pass
<snip>
答案 0 :(得分:1)
使用setattr
:
for name in ['command', 'options', 'library']:
try:
value = data_dict[name]
except KeyError:
pass
else:
setattr(self, name, value)
答案 1 :(得分:1)
您可以使用setattr设置具有动态名称的属性。
在我看来,更清楚地检查密钥是否存在而不是处理KeyError
。
for name in ['command', 'options', 'library']:
if name in data_dict:
setattr(self, name, value)