美文网首页
While 1 比 While True 快?

While 1 比 While True 快?

作者: junjindml | 来源:发表于2018-03-30 22:57 被阅读0次


    junjind

    >1.在Python中bool是int的子类(不管是在Python 2中还是在Python 3中)

    >2.在Python 2.7中True和False还不是关键词,但在Python 3 中是

    Python 2.7 Python 3

    >3.Python 2中True和False还不是关键词,因此我们可以对它进行赋值

    Python 2 Python 3

    >4.由于bool是int的子类,为了保持向下兼容性,在算术运算中,True和False会被当做int值来进行

    >5.代码验证

    Python 2 运行时间对比

    why?

          其实这就是前提中关键词的问题,由于Python 2中True和False还不是关键词,因此我们可以对其进行任意赋值,这导致程序在每次循环时都需要对True和False的值进行检查,而对于1则程序进行了优化而后不会再进行检查。

           我们可以通过dis来查看while one 和while true的字节码。

    Python 2 验证结果

    可以看出,正如上面讲的,在while True的时候,字节码中多出了几行语句,正是这几行语句进行了True值的检查.

    而在python 3中,由于True和False已经是关键词了,不允许进行重新赋值,因此,其执行结果与while 1 不再有区别


    python 3

    相关文章

      网友评论

          本文标题:While 1 比 While True 快?

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