我有一个关于习语和可读性的问题,似乎有一个针对这个特殊情况的 Python哲学冲突: 我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续. 哪种方式更好? try: A[
我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续.
哪种方式更好?
try: A["blah"] = B["blah"] except KeyError: pass
要么
if "blah" in B: A["blah"] = B["blah"]
“做并请求原谅”与“简单和明确”.
哪个更好?为什么?
例外不是条件限制.条件版本更清晰.这是很自然的:这是简单的流量控制,这是条件的设计,而不是例外.
在循环中执行这些查找时,异常版本主要用作优化:对于某些算法,它允许从内部循环中消除测试.它没有这个好处.它有一个小优势,它避免了两次说“blah”,但如果你做了很多这些,你应该有一个帮助move_key函数无论如何.
一般情况下,我强烈建议默认情况下坚持使用条件版本,除非您有特殊原因不这样做.条件是显而易见的方法,这通常是一个强烈的建议,更喜欢一种解决方案而不是另一种解决方案.