当前位置 : 主页 > 编程语言 > python >

python – `如果键在dict`与`try / except` – 这是更具可读性的成语?

来源:互联网 收集:自由互联 发布时间:2021-06-25
我有一个关于习语和可读性的问题,似乎有一个针对这个特殊情况的 Python哲学冲突: 我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续. 哪种方式更好? try: A[
我有一个关于习语和可读性的问题,似乎有一个针对这个特殊情况的 Python哲学冲突:

我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续.

哪种方式更好?

try:
    A["blah"] = B["blah"]
except KeyError:
    pass

要么

if "blah" in B:
    A["blah"] = B["blah"]

“做并请求原谅”与“简单和明确”.

哪个更好?为什么?

例外不是条件限制.

条件版本更清晰.这是很自然的:这是简单的流量控制,这是条件的设计,而不是例外.

在循环中执行这些查找时,异常版本主要用作优化:对于某些算法,它允许从内部循环中消除测试.它没有这个好处.它有一个小优势,它避免了两次说“blah”,但如果你做了很多这些,你应该有一个帮助move_key函数无论如何.

一般情况下,我强烈建议默认情况下坚持使用条件版本,除非您有特殊原因不这样做.条件是显而易见的方法,这通常是一个强烈的建议,更喜欢一种解决方案而不是另一种解决方案.

网友评论