垃圾回收-用户交互-基本运算符-流程控制if判断
1引用计数
x=10
l=['a',x]
间接引用
列表属于:间接引用----如图,列表并不存值,他只是存了 ,值的内存地址
直接引用---
间接引用:只出现在容器类型中
列表是索引对应内存地址 ,,字典是key对应内存地址
针对循环引用,导致间接引用的 --导致的引用计数不能为0的问题(内存泄漏),产生了标记清除 。。
标记清楚:怎么工作的 ,
python垃圾回收,其实管理的是堆区,堆区内容没有了,战区自然被清除掉了。。
标记清除不是,时时刻刻运行的,每当应用程序内存不够用,停止应用。所有栈区扫码,L1 L2 没有了,堆区没有引用了,标记堆区的内存空间
需要被清理掉。发现没有直接引用,会被标记为垃圾。间接引用也会标记为垃圾。
1标记清楚---为了解决引用计数,无法标记的空间,因为循环引用,导致引用计数不能为0
python主要垃圾清除还是引用计数,标记清除是辅助,清理标记不到的 比如循环引用
引用计数 还有缺陷就是效率问题,引用计数扫码,频率是?
新生态--给变量-加权重---》权重越高扫码频率越低--》分代扫码回收
-----------------
用户交互:
input()
格式化输出:
print('my name is %s age is%s"%(name,age))
不记顺序:{‘name':'egon','age':18}
res="my name is %(name)s age is %(age)s"%{'name':'egon','age':19}
由于% 需要记住顺序 --引入了%字典 (字典key)
format 字符串 输出
字符出.format方法 {}占位符 .format('egon,18)
f-string py3.5以后支持
https://zhuanlan.zhihu.com/p/110406030