python——驻留机制

最近看到一个很有意思的东西——python驻留机制

1.什么是驻留机制?

根据 内存id来看,二者指向同一块内存。这就是python的驻留机制,但驻留机制是有局限的。它只对数字0 - 9, 字母a - z,已经下划线 _ 有效。比如下面的例子,由于有了空格的参与,驻留机制无法发挥作用。

2.驻留机制有什么用?

能够提高一些字符串处理任务在时间和空间上的性能,非驻留比较效率为o(n),驻留时比较效率为o(1)

3.驻留机制到底是个啥?

对于这个概念其实没啥用,但是知道一些新知识还是有好处的。驻留机制有时候会影响很多东西,虽然我还没发现,但是肯定会有的。

代码解释:

a = '123'
b = "123"
c = '''123'''

print(a)
print(b)
print(c)

输出结果肯定是一样的。

单引号和双引号都是字符串,两者没有太多的区别,为什么这么说,因为说话要留余地,以防后面出现更新,三引号是多行的字符串。

下面来查看他们的地址是否一样,使用python的id方法。

a = '123'
b = "123"
c = '''123'''

print(a)
print(b)
print(c)

print(a, id(a))
print(b, id(b))
print(c, id(c))

运行结果:

123
123
123
123 1967846941056
123 1967846941056
123 1967846941056

会发现虽然我们创建了三个不同的对象,但是他们地址是一样的,也就是三个指向了相同的内存地址,这就是所谓的驻留机制。

posted @ 2021-06-07 10:23  小白打卡  阅读(394)  评论(0编辑  收藏  举报