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

 更新时间:2018年11月01日 11:40:55   作者:grey_csdn   我要评论

今天小编就为大家分享一篇对Python2与Python3中__bool__方法的差异详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

学习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用着比较顺手,我就一直在这个环境中进行程序的调试。

测试的结果如下:

[email protected]:/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,具体如下:

[email protected]:/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更加人性化一些。这会给程序?#22791;?#22823;的自由度,也能够实现与Python本身集成度更高的代码。

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

相关文章

  • python3实现短网址和数字相互转换的方法

    python3实现短网址和数字相互转换的方法

    这篇文章主要介绍了python3实现短网址和数字相互转换的方法,涉及Python操作字符串的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python实现二叉树的常见遍历操作总结【7种方法】

    Python实现二叉树的常见遍历操作总结【7种方法】

    这篇文章主要介绍了Python实现二叉树的常见遍历操作,结合实例形式总结分析了二叉树的前序、中序、后序、层次遍历中的迭代与递归等7种操作方法,需要的朋友可以参考下
    2019-03-03
  • Python实现矩阵转置的方法分析

    Python实现矩阵转置的方法分析

    这篇文章主要介绍了Python实现矩阵转置的方法,结合实例形式较为详细的分析了Python实现矩阵转置的相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • Python中使用遍历在列表中添加?#20540;?#36935;到的坑

    Python中使用遍历在列表中添加?#20540;?#36935;到的坑

    今天小编就为大家分享一篇关于Python中使用遍历在列表中添加?#20540;?#36935;到的坑,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • pymongo给mongodb创建索引的简单实现方法

    pymongo给mongodb创建索引的简单实现方法

    这篇文章主要介绍了pymongo给mongodb创建索引的简单实现方法,涉及Python使用pymongo模块操作mongodb的技巧,需要的朋友可以参考下
    2015-05-05
  • Python之批?#30475;?#24314;文件的实例讲解

    Python之批?#30475;?#24314;文件的实例讲解

    今天小编就为大家分享一篇Python之批?#30475;?#24314;文件的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python中比较特别的除法运算和幂运算介绍

    Python中比较特别的除法运算和幂运算介绍

    这篇文章主要介绍了Python中比较特别的除法运算和幂运算介绍,“/”这个是除法运算,那么这个“//”呢?“*”这个是乘法运算,那么这个“**”呢?本文就讲解这些运算的不同,需要的朋友可以参考下
    2015-04-04
  • python购物车程序简单代码

    python购物车程序简单代码

    这篇文章主要为大家详细介绍了python购物车程序的简单代码,具有一定的参考价值,?#34892;?#36259;的小伙伴们可以参?#23478;?#19979;
    2018-04-04
  • pandas数据分组和聚合操作方法

    pandas数据分组和聚合操作方法

    下面小编就为大家分享一篇pandas数据分组和聚合操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • pandas进行数据的交集与并集方式的数据合并方法

    pandas进行数据的交集与并集方式的数据合并方法

    今天小编就为大家分享一篇pandas进行数据的交集与并集方式的数据合并方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06

最新评论

时时彩包赢公式0369