【Python】字符串的创建与驻留机制

【Python】字符串的创建与驻留机制,第1张

在前面




示例代码
# 昵 称:追光者♂
# 时 间: 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)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/915900.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存