gpt4 book ai didi

python - 为什么当键不在字典中时有些语言会返回 nil,而 Python 会抛出异常?

转载 作者:太空狗 更新时间:2023-10-30 00:45:25 26 4
gpt4 key购买 nike

我有兴趣了解以下行为背后的基本原理:

在 ruby 中,

irb(main):003:0> dic = {:a => 1, :b => 2}
=> {:a=>1, :b=>2}
irb(main):004:0> dic[:c]
=> nil

在 Javascript 中:

> var dic = {a: 1, b: 2};
undefined
> dic['c']
undefined

Clojure:

user=> (def dic {:a 1 :b 2})
#'user/dic
user=> (:c dic)
nil

在 Python 中:

>>> dic = {'a': 1, 'b': 2}
>>> dic['c']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'

我想知道为什么 Python 的(默认)行为是引发异常,而不是像上面列出的其他语言那样返回某种形式的 nil。我没有在 the design faq. 中看到答案(我想一个等价的问题是问为什么其他语言会做他们所做的事情,但 Python 在这方面似乎是个古怪的人。)

最佳答案

来自 Python 之禅(import this):

 Errors should never pass silently.
Unless explicitly silenced.

意思是,未找到的 key 被视为错误,除非您明确为其编码,例如通过捕获 KeyError 或使用 dict.get(key, default) 方法。

Python 被明确设计为在这方面和(大多数)其他方面非常明确。

关于python - 为什么当键不在字典中时有些语言会返回 nil,而 Python 会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18792933/

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