我已经用两种不同的方式编写了以下代码。我正在尝试找到使用"正确的Pythonic"的方式来完成它。我将解释两种方法的原因。
第一种方法是EAFP。这种方法使用了Python的EAFP原则,但会导致一些代码重复。
try:
my_dict['foo']['bar'] = some_var
except KeyError:
my_dict['foo'] = {}
my_dict['foo']['bar'] = some_var
第二种方式,LBYL。虽然LBYL不被认为是Pythonic的,但它可以消除代码重复。
if 'foo' not in my_dict:
my_dict['foo'] = {}
my_dict['foo']['bar'] = some_var
哪种方法被认为是最佳的?或者有更好的方法吗?
bar
变成了foo
,你只需要改一次。 - cdonts