gpt4 book ai didi

python - 为什么我的 if 语句会产生关键错误?

转载 作者:行者123 更新时间:2023-11-28 20:12:44 25 4
gpt4 key购买 nike

我有一个 View ,它只是检查 session 存储中的 key ,如果它存在,它将删除它,如果不存在,它应该通过,可能值得注意的是 key 存储持有模型实例的 ID。

def RefreshInstances(request):

if request.session['instances']:
del request.session['instances']
else:
pass

return redirect('/')

这有效并实现了删除实例的目标,但是如果 keystore 为空,我会得到一个 key 错误,而不是刚刚传递的代码?

任何人都可以阐明吗?

提前致谢。

最佳答案

访问不存在的字典(或类似字典)的键确实会引发 KeyError

您可以显式检查 key :

if 'instances' in request.session:
# ...

或者您可以使用 .get() 方法,如果键不存在,该方法返回一个默认值(默认为 None)——这也很方便,因为0、''、False、[] 等虚假值通过测试:

if request.session.get('instances'):
del request.session['instances']

...但要删除,只需使用默认的 .pop() 且不带 if:

request.session.pop('instances', None)  # Remove `instances` if it's there, do nothing otherwise.

关于python - 为什么我的 if 语句会产生关键错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56889622/

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