zoukankan      html  css  js  c++  java
  • Python 变量的缓存机制

    • Number 部分:同一个文件内,只对python3.6版本之前负责
    1.对于整型而言,-5~正无穷范围内的相同值 id一致
    2.对于浮点数而言,非负数范围内的相同值 id一致
    3.布尔值而言,值相同情况下,id一致
    4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
    

    1.对于整型而言,-5~正无穷范围内的相同值 id一致

    var1 = -5
    var2 = -5
    print(var1,var2)
    print(id(var1),id(var2))
    """
    >>> var1 = -5
    >>> var2 = -5
    >>> print(var1,var2)
    -5 -5
    >>> print(id(var1),id(var2))
    140711818158736 140711818158736
    >>>
    """
    
    #代码块的作用
    var3 = -100
    var4 = -100
    print(var3,var4)
    print(id(var3),id(var4))
    """
    >>> var3 = -100
    >>> var4 = -100
    >>> print(var3,var4)
    -100 -100
    >>> print(id(var3),id(var4))
    2090435299344 2090435299216
    """
    

    2.对于浮点数而言,非负数范围内的相同值 id一致

    var1 = 5.88
    var2 = 5.88
    """
    2090435195432 2090435195456
    >>> var1 = 5.88
    >>> var2 = 5.88
    >>> print(id(var1)  ,  id(var2))
    2090435195288 2090435195144
    """
    
    var3 = -5.68
    var4 = -5.68
    print(id(var1)  ,  id(var2))
    print(id(var3)  ,  id(var4))
    """
    2090435195144 2090435195168
    >>> var3 = -5.68
    >>> var4 = -5.68
    >>> print(id(var3)  ,  id(var4)
    ... )
    2090435195432 2090435195456
    """
    

    3.布尔值而言,值相同情况下,id一致

    var1 = True
    var2 = True
    print(id(var1),id(var2))
    """
    >>> var1 = True
    >>> var2 = True
    >>> print(id(var1),id(var2))
    140711817627984 140711817627984
    """
    

    4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)

    var1 = 8 +3j
    var2 = 8 +3j
    print(id(var1),id(var2))
    
    var3 = 8j
    var4 = 8j
    print(id(var3),id(var4))
    
    """
    >>> var1 = 8 +3j
    >>> var2 = 8 +3j
    >>> print(id(var1),id(var2))
    2090464163920 2090465821296
    >>> var3 = 8j
    >>> var4 = 8j
    >>> print(id(var3),id(var4))
    2090435299216 2090465821264
    """
    
    • 容器类型部分:同一个文件内,只对python3.6版本之前负责

    5.字符串 和 空元组 相同的情况下,地址相同

    var1 = '你好'
    var2 = '你好'
    print(id(var1),id(var2))
    
    var3 = ()
    var4 = ()
    print(id(var3),id(var4))
    """
    >>> var1 = '你好'
    >>> var2 = '你好'
    >>> print(id(var1),id(var2))
    2090465255336 2090465906824
    >>>
    >>> var3 = ()
    >>> var4 = ()
    >>> print(id(var3),id(var4))
    2090434953288 2090434953288
    """
    

    6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]

    var1 = ['1','2']
    var2 = ['1','2']
    print(id(var1),id(var2))
    
    var3 = {'a','b'}
    var4 = {'a','b'}
    print(id(var3),id(var4))
    
    var5 = {1:'a'}
    var6 = {1:'a'}
    print(id(var5),id(var6))
    
  • 相关阅读:
    access 连接数据库
    Debug 和 Release 的区别
    Centos
    打印画面
    读取文件夹以及消除
    常用的文件文件夹目录的操作函数
    db的操作
    从数据库取数据
    pdf文件的作成
    读取文件
  • 原文地址:https://www.cnblogs.com/CrownYP/p/11340781.html
Copyright © 2011-2022 走看看