3 个不可思议的 Python 返回值

本文介绍了Python编程中的三个不寻常现象:字典键的等价性,异常处理中的return行为,以及对象的id值。在字典中,相同值的不可变对象被视为相同键;在异常处理中,finally块的return总是在最后执行;而对象的id值在生命周期内唯一,但对象销毁后,新对象可能获得相同的id。这些深入理解有助于提升Python编程技巧。
摘要由CSDN通过智能技术生成
第一个:神奇的字典键
some_dict = {}
some_dict[5.5] = "Ruby"
some_dict[5.0] = "JavaScript"
some_dict[5] = "Python"

Output:

>>> some_dict[5.5]
"Ruby"
>>> some_dict[5.0]
"Python"
>>> some_dict[5]
"Python"

"Python" 消除了 "JavaScript" 的存在?

说明:

Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同

具有相同值的不可变对象在Python中始终具有相同的哈希值

注意: 具有不同值的对象也可能具有相同的哈希值(哈希冲突)

>>> 5 == 5.0
True
>>> hash(5) == hash(5.0)
True

当执行 some_dict[5] = "Python"语句时, 因为Python将5和5.0识别为some_dict的同一个键, 所以已有值 "JavaScript" 就被 "Python" 覆盖了

这个 StackOverflow的 回答(https://stackoverflow.com/a/32211042/4354153

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值