• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

代码块

开发技术 开发技术 2周前 (01-14) 12次浏览

代码块

  1. 代码块的定义

    1. 所有的代码都依赖于代码块进行执行,代码块可以是一个文件、函数、类等
    2. 交互式命令下一行就是一个代码块
  2. 代码块的缓存机制

    1. 同一代码块下的缓存机制
      1. 前提条件:代码在同一个代码块内
      2. 机制内容:Python在执行初始化对象的时候,回检查之前有没有初始化过这个变量,如果有就指向这个内存。
      3. 适用的对象:int、bool、str
      4. 具体细则:所有的数字、bool、几乎所有的数字
      5. 优点
        1. 节省内存
        2. 提升效率
    2. 不同代码块下的缓存机制(小内存池)
      1. 前提条件:代码在不同代码块内
      2. 机制内容:Python在执行初始化对象的时候,回检查之前有没有初始化过这个变量,如果有就指向这个内存。
      3. 适用的对象:int、bool、str
      4. 具体细则:-5~256的数字、bool、有规则的字符串(经过测试,好像对中文有歧义)
      5. 优点
        1. 节省内存
        2. 提升效率
  3. 同一个代码块实例

    1. 数字

      i = 100
      i1 = 100
      print(id(i))
      print(id(i1))
      # 输出
      4562324240
      4562324240
      
    2. bool

      b1 = True
      b2 = True
      print(id(b1))
      print(id(b2))
      # 输出
      4314780784
      4314780784
      
    3. 字符串

      s1 = "无敌"
      s2 = "无敌"
      print(id(s1))
      print(id(s2))
      # 输出
      4317723528
      4317723528
      
    4. 函数

      def sum(n):
          return n * n
      
      def sum1(n):
          return n * n
      
      print(id(sum(10)))
      print(id(sum1(10)))
      # 结果
      4511357712
      4511357712
      
    5. 
      
  4. 不同代码块的实例

    1. 数字

      >>> i = 100
      >>> i1 = 100
      >>> print(id(i))
      4530920208
      >>> print(id(i1))
      4530920208
      
      >>> i = 800
      >>> i1 = 800
      >>> print(id(i))
      4533004816
      >>> print(id(i1))
      4533556208
      
    2. bool

      >>> b1 = True
      >>> b2 = True
      >>> print(id(b1))
      4530513008
      >>> print(id(b2))
      4530513008
      
    3. 字符串

      >>> s1 = "aaaa"
      >>> s2 = "aaaa"
      >>> print(id(s1))
      4533563264
      >>> print(id(s2))
      4533563264
      
      # 经过测试,好像对中文有歧义
      

程序员灯塔
转载请注明原文链接:https://www.wangt.cc/2021/01/%e4%bb%a3%e7%a0%81%e5%9d%97/
喜欢 (0)