对Python2与Python3中__bool__方法的差异详解

发布时间:2020-08-28 00:08:58

来源:脚本之家

阅读:74

作者:grey_csdn

学习Python面向对象编程的时候,遇到了一个很有意思的小问题。Python的__bool__方法不起作用的问题。

我反复读了我手中的教程,确认了我写的代码应该管用。可是在测试的时候却一直不通过,后来发现我实现的__bool__方法似乎并不是Python本身的接口。

代码如下:

class Demo():

def __init__(self,value = 0):

self.value = value

def __bool__(self):

return bool(self.value > 5)

obj = Demo()

obj.value = 0

if obj:

print("yes")

else:

print("no")

print(bool(obj))

这几天使用Win10下面的bash用着比较顺手,我就一直在这个环境中进行程序的调试。

测试的结果如下:

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08/16$python bool_demo.py

yes

True

这多少有点奇怪,居然跟我预期的不一样。尝试直接调用bool方法发现根本不存在之后,我猜测这或许是py2与py3的一点差异。Win10的Linux子系统中python版本是2.X,具体如下:

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08/16$python -V

Python 2.7.6

我在win10上安装的Python版本是3.X,切换CMD只有测试如下:

E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08\16>pythonbool_demo.py

no

False

E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08\16>python-V

Python 3.6.0

最终结果符合预期!

看起来,这应该是Python3与Python2之间的一点接口上的差异。如果从好用的角度考虑,自然是具有这种接口的Python3更加人性化一些。这会给程序员更大的自由度,也能够实现与Python本身集成度更高的代码。

以上这篇对Python2与Python3中__bool__方法的差异详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。

python2与python3性能对比_对Python2与Python3中__bool__方法的差异详解相关推荐

  1. python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  2. 电脑连接电视方法详解_查看电脑配置的几种方法(图文详解)

    很多朋友想要了解自己电脑详细的配置的时候,一般都是通过第三方的工具检测的.那么有没有其他更好的方法可以在win系统下查看电脑配置呢?今天我就给大家分享一下如何查看电脑配置. 查看电脑配置的几种方法图文 ...

  3. python代码物理_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  4. python apscheduler 阻塞方式只用一个线程_框架APScheduler在python中调度使用的实例详解...

    本篇文章主要介绍了详解python调度框架APScheduler使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近在研究python调度框架APScheduler使 ...

  5. jmeter接口顺序执行_【接口测试】JMeter中各组件执行顺序详解

    JMeter是我们测试人员使用越来越多的一种测试工具.本文就详细说明一下在JMeter的一个项目内,各个模块和组件的执行顺序是怎么样的. 执行顺序 JMeter常用的各个组件的执行顺序是:配置原件 前 ...

  6. python中label有什么用_对Python中TKinter模块中的Label组件实例详解

    Python2.7.4 OS-W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像.最终呈现出的Label是由背景和前景叠加构成的内容. Label组件定义函数:Label(master ...

  7. python的执行过程_在交互式环境中执行Python程序过程详解

    前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...

  8. python pptx库中文文档_基于python-pptx库中文文档及使用详解

    个人使用样例及部分翻译自官方文档,并详细介绍chart的使用 一:基础应用 1.创建pptx文档类并插入一页幻灯片 from pptx import Presentation prs = Presen ...

  9. python pptx教学_基于python-pptx库中文文档及使用详解

    个人使用样例及部分翻译自官方文档,并详细介绍chart的使用 一:基础应用 1.创建pptx文档类并插入一页幻灯片 from pptx import Presentation prs = Presen ...

最新文章

  1. 马斯克:十年内可把人脑与AI计算机连接起来
  2. 来吧!我教你画真正的流程图
  3. 简单的实现登录拦截及统一异常处理(自定义异常)
  4. json 潜逃 结构体_JSON还原为结构体 - osc_t5zhwnvx的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. linq结果转换object_你知道Object.entries(),但你还知道有Object.fromEntries()吗?
  6. mysql重做日志与binlog日志区别_【135期】谈谈MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用...
  7. mysql ODBC连接配置
  8. Caffe傻瓜系列(10):draw_net.py绘制caffe net结构
  9. iphone实用配置工具_除了让你买买买,苹果官网还隐藏着这些实用网页工具
  10. 网站性能优化——雅虎14条
  11. 猎豹网校C++ Primer学习笔记
  12. 机器学习——k邻近算法(kNN)
  13. 三维扫描仪[10]——如何设计一台云台式扫描仪(代码详解)
  14. js三种消息框总结-警告框、确认框、提示框
  15. 我得意地笑: 搞定了, 哈哈 如何读取Thermo Scientific Nicolet Omnic *.spa二进制格式的谱图文件中的数据
  16. linux下为php添加GD库(重新编译php)
  17. appium+Python+逍遥游模拟器自动化执行测试用例,为什么一直中断连接?
  18. 【自然语言处理】【多模态】CLIP:从自然语言监督中学习可迁移视觉模型
  19. tomcat+nginx配置htpps
  20. 阿里云疯狂促销 公有云之战刚鸣枪

热门文章

  1. delphi中,idftp怎样查找ftp服务器的是否存在一个文件,delphi – IDFTP DirExists和MakeDir...
  2. MATLAB周期时域曲线,MATLAB系列之连续时间系统的时域分析
  3. php7不支持mysql扩展了么_php7不支持mysql扩展需要改成mysqli扩展
  4. SQL中的left join
  5. htaccess简介和16个小技巧
  6. 服务器cpu跑满持续运行一年,服务器CPU跑满是什么原因
  7. centos6.5 yum安装mysql_CentOS 6.5使用yum安装MySQL快速上手必备
  8. 决策树模型回归可视化分析_【时间序列分析】在论文中用向量自回归(VAR)模型时应注意哪些问题?...
  9. android view xml,如何将View添加到XML布局android
  10. mimo的误码率_混合波束成形专栏|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形...