代码块机制和小数据池

代码块的缓存机制

在同一代码块(函数、py文件)中:
1.数字:如果两变量的值相同,且都<-5,则指向不同的地址。否则第二个变量的值会覆盖第一个(即指向相同的地址)
2.字符串:乘法的时候长度不能超过20   # "hello"*2 
3.布尔值:内容相同就指向相同的内存地址
#test.py
a=1000
b=1000
print(id(a))   #2004468084528
print(id(b))   #2004468084528

如上:a和b在同一代码块(py文件)下,两者指向相同的地址

小数据池

两值分别在不同的代码块中:
1.数字:两值相同且都在-5~256之间,则两值指向相同的地址。除此之外,两值指向的地址不同
2.字符串:乘法的时候总长度不能超过20
3.布尔值:内容相同则内存地址相同
#test.py
def fun1():
    a=100
    print(id(a))
def fun2():
    a=100
    print(id(a))
fun1()  #1704097904
fun2()  #1704097904
---------如上:两个函数中的a分别在不同代码块中,但是值在-5~256之间

def fun3():
    a=1000
    print(id(a))
def fun4():
    a=1000
    print(id(a))
fun3()  #1802260426448
fun4()  #1802290428656

----------如上:两个函数中的a分别在不同代码块中,但是值不在-5~256之间
posted @ 2019-07-04 20:33  MISF  阅读(102)  评论(0编辑  收藏  举报
     JS过度和变形效果演示   
  
    html5.png