赞
踩
一般情况下,dict(id=1, **{'id': 1})这句代码应该报TypeError。但如果在捕获了其他异常的情况下,再来执行这句代码,却是会报KeyError,如下图:
Python3.10和Python3.9也能复现该情况,正当我摩拳踩掌,准备去cpython提个issue时,发现Python3.12竟然没有这个问题!
好吧, 也不能白忙活,还是有点好奇,这个BUG是怎么产生,于是到stackoverflow上提问了一下。很高兴真的有很给力的大佬,做出了详细的解释:python - Why does `dict(id=1, **{'id': 2})` sometimes raise `KeyError: 'id'` instead of a TypeError? - Stack Overflow
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。