今天给大家分享 3 个比较冷门的知识。教程点这(https://jq.qq.com/?_wv=1027&k=zLK3I0M5)

第一个:神奇的字典键 (https://jq.qq.com/?_wv=1027&k=zLK3I0M5)

some_dict = {} some_dict[5.5] = "Ruby" some_dict[5.0] = "JavaScript" 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” 覆盖了

第二个:异常处理中的return (https://jq.qq.com/?_wv=1027&k=zLK3I0M5)

def some_func(): try: return 'from_try' finally: return 'from_finally'   Output: >>> some_func() 'from_finally'

说明:

•当在 “try…finally” 语句的 try 中执行 return, break 或 continue 后, finally
子句依然会执行.

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

第三个:相同对象的判断 (https://jq.qq.com/?_wv=1027&k=zLK3I0M5)

 class WTF: pass   Output: >>> WTF() == WTF() # 两个不同的对象应该不相等 False >>> WTF() is WTF() # 也不相同 False >>> hash(WTF()) == hash(WTF()) # 哈希值也应该不同 True >>> id(WTF()) == id(WTF()) True

说明:

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

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

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

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

class WTF(object): def __init__(self): print("I") def __del__(self): print("D")   Output: >>> WTF() is WTF() I I D D False >>> id(WTF()) == id(WTF()) I D I D True

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

以上就是今天的分享,如果你觉得文章还不错,请大家 给个三连哈 ,因为这将是我持续输出更多优质文章的最强动力!

不可思议的返回功能——python的更多相关文章

  1. 想要隐藏navigationBar,同时又想支持右滑返回功能

    如果直接设置 self.navigationBarHidden = YES; 那同时也会屏蔽右滑返回功能. 解决办法1: self.navigationBarHidden = NO; self.nav ...

  2. iOS之手势滑动返回功能-b

    iOS中如果不自定义UINavigationBar,通过手势向右滑是可以实现返回的,这时左边的标题文字提示的是上一个ViewController的标题,如果需要把文字改为简约风格,例如弄过箭头返回啥的 ...

  3. 禁用ios7 手势滑动返回功能

    禁用ios7 手势滑动返回功能 版权声明:本文为博主原创文章,未经博主允许不得转载. 在有的时候,我们不需要手势返回功能,那么可以在页面中添加以下代码: - (void)viewDidAppear:( ...

  4. UINavigationController实现全屏滑动返回功能

    说明: UINavigationController默认在push出的控制器中都有边沿滑动返回功能,但是只能从屏幕左边滑才能返回,若从屏幕中间画并没有效果.下面实现全屏滑动功能. 探究: 系统默认能够 ...

  5. iOS彩票项目--第五天,新特性引导页的封装、返回按钮的自定义、导航控制器的滑动返回以及自定义滑动返回功能

    一.上次实现了在AppDelegate中通过判断app版本决定是否进入新特性页面,今天将AppDelegate中的一坨进行了封装.将self.window的根控制器到底应该为新特性界面,还是主页面,封 ...

  6. 再谈iOS 7的手势滑动返回功能

    本文转载至 http://blog.csdn.net/jasonblog/article/details/28282147  之前随手写过一篇<使用UIScreenEdgePanGestureR ...

  7. iOS之手势滑动返回功能

    iOS中如果不自定义UINavigationBar,通过手势向右滑是可以实现返回的,这时左边的标题文字提示的是上一个ViewController的标题,如果需要把文字改为简约风格,例如弄过箭头返回啥的 ...

  8. Python 中 3 个不可思议的返回

    第一个:神奇的字典键 some_dict = {} some_dict[5.5] = "Ruby" some_dict[5.0] = "JavaScript" ...

  9. 全功能Python测试框架:pytest

    python通用测试框架大多数人用的是unittest+HTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest.   imag ...

随机推荐

  1. 《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-下篇(详解教程)

    1.简介 上一篇宏哥讲解和分享了如何在控制台输出日志,但是你还需要复制粘贴才能发给相关人员,而且由于界面大小限制,你只能获取当前的日志,因此最好还是将日志适时地记录在文件中直接打包发给相关人员即可.因 ...

  2. 解决Mapper.xml文件中sql标签第一个字段报错

    在文件标头的http后边补上www 下边代码仅第4行有变动 原文件: <?xml version="1.0" encoding="UTF-8"?> ...

  3. 20202127 实验一《Python程序设计》实验报告

    20202127 2022-2022-2 <Python程序设计>实验一报告课程:<Python程序设计>班级: 2021姓名: 马艺洲学号:20202127实验教师:王志强实 ...

  4. Django-----cookie&session

    cookie 保存在用户浏览器端的一个键值对(别人给的凭证) 服务端可以向用户浏览器写cookie 客户端每次发请求会携带cookie去(放在请求头里面) 淘宝的cookie  京东的cookie(h ...

  5. Win10搭建Jenkins部署Java项目(本机和远程Win10部署)

    目录 一.前言&背景 二.环境准备 三.插件安装 四.全局配置 Maven JDK Git Maven 五.新建项目并配置 新建项目 配置 1.Discard old builds 2.Thi ...

  6. ONNX Runtime 源码阅读:Graph::SetGraphInputsOutputs() 函数

    目录 前言 正文 总结 前言 为了深入理解ONNX Runtime的底层机制,本文将对 Graph::SetGraphInputsOutputs() 的代码逐行分析. 正文 首先判断Graph是否从O ...

  7. MongoDB 常用运维实践总结

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 一.MongoDB 集群简介 MongoDB是一个基于分布式文件存储的数据库,其目的在于为WE ...

  8. 【机器学习基础】无监督学习(3)——AutoEncoder

    前面主要回顾了无监督学习中的三种降维方法,本节主要学习另一种无监督学习AutoEncoder,这个方法在无监督学习领域应用比较广泛,尤其是其思想比较通用. AutoEncoder 0.AutoEnco ...

  9. 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题

    先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...

  10. CentOS6.x静默安装Oracle12c

    一.准备 1.1 安装环境 系统要求 内存 > 2G 安装目录空间 > 6.5G /tmp目录空间 > 1G 操作系统 cat /etc/redhat-release 用rpm命令确 ...