Python True 1

上次测试中,while 1比while True貌似要快,今天在一位大神的个人网站找到了答案,这域名选的不错~!http://www.pythoner.com/356.html,有兴趣钻研更深的可以直接查看,而且还有很多有意思的东西可以学习

在python2中,True目前还不是关键字,因此可以任意对其赋值,这就导致了程序在每次while True都需要对True还是False来进行检查判断;但是对于1,程序则会做了优化,而后不会进行检查,可能跟缓存简单整型有异曲同工之妙吧

>>> import keyword
>>> keyword.kwlist
[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
>>>
python2.7的关键字就只有如上一批了,据说python3会将True/False添加到关键字,估计性能就会一样,不允许重新赋值?不过估计咋们有生之年python2肯定够了,3改动的确十分的大,还有很多不兼容,就算大势所趋也不是咋们考虑的

同样文章中还介绍了if x比if x == True不论执行效率,简洁性都要好,还从字节码的程度还讲解得比较细致,有兴趣可以去参考下

发表回复