美文网首页
Python 中这3 个神奇的返回功能,很少有人知道

Python 中这3 个神奇的返回功能,很少有人知道

作者: Python学习猿 | 来源:发表于2021-06-25 21:25 被阅读0次
image.png

大家好,最近了解到了3个比较冷门的知识,今天分享给大家。

  1. 第一个:神奇的字典键

  2. 第二个:异常处理中的return

  3. 第三个:相同对象的判断

下面我们详细展开介绍一下

第一个:神奇的字典键

image.png

Output:


image.png

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

💡 说明:

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

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

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

image.png

`

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

第二个:异常处理中的return

image.png

Output:


image.png

💡 说明:

  • 当在 "try…finally" 语句的try中执行return,breakcontinue后,finally子句依然会执行.

  • 函数的返回值由最后执行的return语句决定. 由于finally子句一定会执行, 所以finally子句中的return将始终是最后执行的语句.

第三个:相同对象的判断

image.png

Output:

image.png

💡 说明:

  • 当调用id函数时, Python 创建了一个WTF类的对象并传给id函数. 然后id函数获取其id值 (也就是内存地址), 然后丢弃该对象. 该对象就被销毁了.

  • 当我们连续两次进行这个操作时, Python会将相同的内存地址分配给第二个对象. 因为 (在CPython中)id函数使用对象的内存地址作为对象的id值, 所以两个对象的id值是相同的.

  • 综上, 对象的id值仅仅在对象的生命周期内唯一. 在对象被销毁之后, 或被创建之前, 其他对象可以具有相同的id值.

  • 那为什么is操作的结果为False呢? 让我们看看这段代码.

image.png

Output:


image.png

正如你所看到的, 对象销毁的顺序是造成所有不同之处的原因.

以上就是今天的分享,如果觉得文章还不错,那就点个赞再走吧!

关注小编,后续将持续输出更多优质文!

相关文章

网友评论

      本文标题:Python 中这3 个神奇的返回功能,很少有人知道

      本文链接:https://www.haomeiwen.com/subject/bmaoyltx.html