【发布时间】:2017-09-06 09:44:37
【问题描述】:
我想知道如何最好/最 Pythonic 来编写这种情况:如果可以做到,那就去做。如果没有:就离开吧。
示例: 我有一个从数据库加载数据的函数。如果给定了可写目的地,则将数据写入文件。不管文件是否被写入,数据总是被返回。我当然可以检查是否有可写位置,如果有,将数据写入文件。然而,这似乎是一种非 Pythonic 方式,我认为“请求宽恕比请求许可更好”。
我是这样实现的:
def loadData(dest=False):
data = someDBRequest()
try:
with open(dest, 'w') as fh:
json.dump(data, fh)
except:
pass
return data
这在某种程度上感觉很糟糕,因为我实现了一个无用的 except,毕竟我希望 dest 并不总是被设置到一个位置,因为可以在不设置它的情况下调用该函数。我也觉得这不是应该记录或以某种方式处理的错误。
这是一种正确的方式还是你会建议更好/更蟒蛇?
【问题讨论】:
-
另一个原则是“显式优于隐式”。我也不觉得你这里写的代码可读性很强,你自己也不喜欢。只做最适合你的事情。如果提供了 dest 但不可写,您真的不想发出警报吗?
标签: python python-2.7 python-2.x