代码改变世界

Python-内存管理

2018-11-19 15:18  huangdong丶  阅读(130)  评论(0编辑  收藏  举报
# Cpython解释器的垃圾回收机制
# 什么是垃圾:当一个值身上没有人绑定任何变量名(该值的引用计算=0)时,该值就是一个垃圾

#引用计算增加
# age=18 #18的引用计数等于1
# x=age #18的引用计数等于2
# print(age)
# print(x)

#引用计数减少
# age=19 #18的引用计数等于1
# print(age)

# del x #18的引用计数等于0
#解除引用

#2.变量值的三个特征:
# id:反应的是内存地址
# type:数据类型
# 值
# age=18
# print(id(age))
# print(type(age))
# print(age)

# 总结:
# 2.1. id相同,值一定相同
# 2.2. 值相同,id可以不用
# '''
# >>> x='name:egon age:18***'
# >>> y='name:egon age:18***'
# >>> id(x)
# 2847698422856
# >>> id(y)
# 2847698422928
# '''

# 在pycharm中, id一样
# x=11111111111111111111111111231231231231222222222222
# y=11111111111111111111111111231231231231222222222222
#
# print(id(x))
# print(id(y))

# 3. is 与 ==
# == :值是否相等
# is:id是否相等
#
# 4. 可变类型与不可变类型
#4. 可变类型与不可变类型
# 可变类型: 值改变,id不变,证明就是在改变原值
# 不可变类型:值改变,id也变,证明根本不是在改变原值,是创建了新值,原值就是不可变类型
# x=10
# print(id(x))
# x=11
# print(id(x))


l=['a','b','c']
print(id(l))
l[0]='A'
print(id(l))
# print(l)