最近看到一个很有意思的东西——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
会发现虽然我们创建了三个不同的对象,但是他们地址是一样的,也就是三个指向了相同的内存地址,这就是所谓的驻留机制。