gpt4 book ai didi

python - 哪种风格更受欢迎?

转载 作者:太空狗 更新时间:2023-10-29 19:30:17 25 4
gpt4 key购买 nike

选项 1:

def f1(c):
d = {
"USA": "N.Y.",
"China": "Shanghai"
}

if c in d:
return d[c]

return "N/A"

选项 2:

def f2(c):
d = {
"USA": "N.Y.",
"China": "Shanghai"
}

try:
return d[c]
except:
return "N/A"

这样我就可以调用:

for c in ("China", "Japan"):
for f in (f1, f2):
print "%s => %s" % (c, f(c))

选项是确定 key 是否在手之前的目录中(f1),或者只是回退到异常(f2)。哪一个是首选?为什么?

最佳答案

都不会,我会去

def f2(c):
d = {
"USA": "N.Y.",
"China": "Shanghai"
}

return d.get(c, "N/A")

这种方式更短,“get”是为工作而设计的。

此外,没有显式异常的 except 也是不好的做法,因此请使用 except KeyError: 而不仅仅是 except。

异常在 python 中没有太多开销。如果没有更好的选择,或者有时甚至在保存属性查找时(使用而不是 hasattr),通常最好使用它们。

编辑:清除关于异常的一般观点。

paxdiablo 在一般点上是正确的。 Python 主要是为“请求宽恕然后许可更容易”而设计的,即尝试然后查看失败的内容(异常),然后“三思而后行”看看那里有什么,然后应用。这是因为 python 中的属性查找可能很昂贵,因此再次调用相同的东西(检查边界)是一种资源浪费。然而,python 中的内部内容通常有更好的助手,因此最好使用它们。

关于python - 哪种风格更受欢迎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com