我在那个python周围阅读,为了优化目标,制作了一些小整数和字符串的缓存,所以我做了一些实验。
来自test1.py
:
x = 150
n = int(input('number: '))
print(id(x))
print(id(n))
所以我推出了它:
*****@***** ~/Desktop $ python3 test1.py
number: 150
10459808
10459808
来自test2.py
:
x = 'hi'
s = (input('write: ')).strip()
print(id(x))
print(id(s))
然后:
*****@***** ~/Desktop $ python3 test2.py
write: hi
140124156034832
140124155359336
为什么整数在运行时和字符串优化?
如果我有:
x = 'hi'
s = 'hi'
print(id(x))
print(id(s))
它返回相同的ID。那么为什么字符串仅在编译时进行优化?