zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    LoadLibrary And GetProcAddress And FreeLibrary
    Preprocessor Directives
    Pragma Directives
    How to use Union in c++?
    WhiteSpace
    Export Class and Struct
    Two Ways To Export from a DLL
    Know more about the organization of solution and project
    Cygwin
    二叉树及其应用
  • 原文地址:https://www.cnblogs.com/xiaobaidaka/p/14857786.html
Copyright © 2011-2022 走看看