【发布时间】:2020-02-07 12:13:46
【问题描述】:
考虑这段代码:
self._t10_test = None
self._t20_test = None
self._t30_test = None
id_lst = ['10', '20', '30']
msg_lst = ['Message for A', 'Message for B', 'Message for C')
在这种情况下使用exec 是否正确?
for id, msg in zip(id_lst, msg_lst):
exec((f'self._t{id}_test = {msg}')
或者这会更pythonic吗?
for id, msg in zip(id_lst, msg_lst):
set_msg(id, msg)
def set_msg(id, msg):
if id == '10':
self._t10_test = msg
elif id == '20':
self._t20_test = msg
elif id == '30':
self._t30_test = msg
【问题讨论】:
-
经验法则:
exec绝不是pythonic
标签: python python-3.x list design-patterns exec