代码块
代码块
-
代码块的定义
- 所有的代码都依赖于代码块进行执行,代码块可以是一个文件、函数、类等
- 交互式命令下一行就是一个代码块
-
代码块的缓存机制
- 同一代码块下的缓存机制
- 前提条件:代码在同一个代码块内
- 机制内容:Python在执行初始化对象的时候,回检查之前有没有初始化过这个变量,如果有就指向这个内存。
- 适用的对象:int、bool、str
- 具体细则:所有的数字、bool、几乎所有的数字
- 优点
- 节省内存
- 提升效率
- 不同代码块下的缓存机制(小内存池)
- 前提条件:代码在不同代码块内
- 机制内容:Python在执行初始化对象的时候,回检查之前有没有初始化过这个变量,如果有就指向这个内存。
- 适用的对象:int、bool、str
- 具体细则:-5~256的数字、bool、有规则的字符串(经过测试,好像对中文有歧义)
- 优点
- 节省内存
- 提升效率
- 同一代码块下的缓存机制
-
同一个代码块实例
-
数字
i = 100 i1 = 100 print(id(i)) print(id(i1)) # 输出 4562324240 4562324240
-
bool
b1 = True b2 = True print(id(b1)) print(id(b2)) # 输出 4314780784 4314780784
-
字符串
s1 = "无敌" s2 = "无敌" print(id(s1)) print(id(s2)) # 输出 4317723528 4317723528
-
函数
def sum(n): return n * n def sum1(n): return n * n print(id(sum(10))) print(id(sum1(10))) # 结果 4511357712 4511357712
-
类
-
-
不同代码块的实例
-
数字
>>> i = 100 >>> i1 = 100 >>> print(id(i)) 4530920208 >>> print(id(i1)) 4530920208 >>> i = 800 >>> i1 = 800 >>> print(id(i)) 4533004816 >>> print(id(i1)) 4533556208
-
bool
>>> b1 = True >>> b2 = True >>> print(id(b1)) 4530513008 >>> print(id(b2)) 4530513008
-
字符串
>>> s1 = "aaaa" >>> s2 = "aaaa" >>> print(id(s1)) 4533563264 >>> print(id(s2)) 4533563264 # 经过测试,好像对中文有歧义
-