小整数的缓冲池是在Python初始化的时候被创建的
intern机制处理空格一个单词的复用机会大,所以创建一次,有空格创建多次,但是字符串长度大于20,就不是创建一次了
a = -5 b = -5 a is b # True a = 256 b = 256 a is b # True a = 1000 b = 1000 a is b # True a = ‘abc‘ b = ‘abc‘ a is b # True a = ‘helloworld‘ b = ‘helloworld‘ a is b # True a = ‘hello world‘ b = ‘hello world‘ a is b # False
终端是每次执行一次,所以每次的大整数都重新创建,而在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象
在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象
a = 1000
b = 1000
a is b # False
a = -1888
b = -1888
a is b # False
class C1(object):
a = 100
b = 100
c = 1000
d = 1000
class C2(objcet):
a = 100
b = 1000
print(C1.a is C1.b) # True
print(C1.a is C1.a) # True
print(C1.c is C1.d) # True
print(C1.d is C1.b) # Falsec
原文:https://www.cnblogs.com/featherwit/p/12875158.html