而 CPython 下,则是基于一个更诡异的编译器优化:一方面有一个有限的常量池([-5...256]),另一方面,如果在同一次编译中编译期求值后存在同一个值,则优化成同一个对象。 所以,在 REPL 中可以发现如下现象(注意一个 >>> 发生一次编译): >>> a=12345; b=10**4+2344+1; a is b True >>> a=12345 >>> b=12345 >>> a is b False
simonlu9
2021-05-07 11:45:03 +08:00
@xloger 因为常用的业务逻辑都会用到 for 循环大量用到都是不超 100 的数字,经常使用,没必要每次都初始化,跟字符串一样