
# 昵 称:追光者♂
# 时 间: 2022/5/10/0010 8:34
# 字符串的驻留机制
a = 'Python'
b = "Python"
c = '''Python'''
print(a, id(a))
print(b, id(b))
print(c, id(c))
可以看出,a b c 的内存地址均一样,即a b c指向的是同一段内存空间。
Python的驻留机制即 对相同的字符串只留一份备份。
驻留机制的几种情况:(使用交互模式验证,即黑窗模式,Windows+R:cmd)
(1)字符串的长度为0或者1时:
(2)符合标识符的字符串:
下面的’abc%'不是符合标识符的字符串。没有产生驻留机制。
(符合标识符的字符串应当由字母、数字、下划线组成。)
s1和s2的内容是相同的,但二者指向的内存地址却是不同的。
符合标识符的字符串:
产生了驻留机制:
(3)字符串只在编译时驻留,而非运行时:
b的值在运行之前已经连接完成了,c的值是在程序运行时通过join()方法对列表当中的数据进行连接的。
(4)[-5,256]之间的整数数字会驻留:
另外,python中可以通过导入…实现强制驻留:
【这里不使用pycharm演示的原因是 原本不驻留的,你在Pycharm中所看到的地址却是相同的。。。。。】
s1 = 'abc%'
s2 = 'abc%'
print(s1 is s2)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)