为什么当密钥不存在时我没有得到密钥错误?
Why didn't I get a key error when the key does not exist?
假设我有一个空字典。
test_dict = {}
我原来的代码是这样的
x = input()
try:
info = test_dict.get(x)
except:
print("Key Does Not Exist!")
但它不会在我的控制台中引发 KeyError,而是 returns None。我非常确定我测试过它并且它可以工作,但是在我将我的 Spyder 从 4.1.2 更新到 4.1.5 之后,它不再工作了,我必须将我的代码更改为:
x = input()
if x in test_dict.keys():
info = test_dict.get(x)
else:
print("Key Does Not Exist!")
为什么它 return None 而不是 KeyError?
如果您不理解某些行为,help
通常很有用。在这种情况下你可以这样做:
test_dict = {}
help(test_dict.get)
意识到:
Help on built-in function get:
get(key, default=None, /) method of builtins.dict instance
Return the value for key if key is in the dictionary, else default.
假设我有一个空字典。
test_dict = {}
我原来的代码是这样的
x = input()
try:
info = test_dict.get(x)
except:
print("Key Does Not Exist!")
但它不会在我的控制台中引发 KeyError,而是 returns None。我非常确定我测试过它并且它可以工作,但是在我将我的 Spyder 从 4.1.2 更新到 4.1.5 之后,它不再工作了,我必须将我的代码更改为:
x = input()
if x in test_dict.keys():
info = test_dict.get(x)
else:
print("Key Does Not Exist!")
为什么它 return None 而不是 KeyError?
如果您不理解某些行为,help
通常很有用。在这种情况下你可以这样做:
test_dict = {}
help(test_dict.get)
意识到:
Help on built-in function get:
get(key, default=None, /) method of builtins.dict instance
Return the value for key if key is in the dictionary, else default.