命名规范
python的命名规范和前端的命名规范有些相似,以驼峰体和下划线体为主
驼峰体命名2种:
1.多个单词的首写字母是大写,例:UserNameOfDb
2.第一个单词的首写小写,其余单词的首字母大写,例:userNameOfDb
下划线体:
单词与单词之间用下划线隔开,例:user_name_of_db
备注:
#命名规范
*变量名的命名要做到见名知意
1.变量名只能由数字,字母,下划线的任意组合
2.变量名不能以数字开头,下划线建议不要开头因为有特殊含义
3.变量名不能与关键字冲突,例:class,print,div等
什么是变量
顾名思义:即变化的量。
变量的原理
遇到赋值符号先看右边在看左边,简单举个🌰
分析:内存空间中存储lucy, 将存储lucy的内存空间地址绑定给变量名username,之后若访问Lucy通过请求变量名username即可访问。
扩展
username = 'lucy'
name = 'jack'
username = name
print(username)#输出username = jack
原因:Lucy已被变量名为username绑定了,jack已被变量名为name绑定了,此时username = name,“=”意为赋值,所以此时username输出为jack。
变量三要素
1. 变量的值
2.变量的内存地址
3.变量的数据类型
(ps:若文件中出现波浪线为代码不规范,可快捷键快速排版:comand/ctrl+ait+L)
python底层优化
1.一个变量名只能指向一个内存地址
2.一个内存地址可以有多个变量名指向
垃圾回收机制
1.引用计数
Python垃圾回收主要以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向了这个对象,当发生以下四种情况的时候,该对象的引用计数器+1,为0时清除
2.标记清除
基于追踪回收(tracing GC)技术实现的垃圾回收算法。第一阶段是标记阶段,GC会把所有的『活动对象』打上标记,第二阶段是把那些没有标记的对象『非活动对象』进行回收。
(图解,标记工作原理) 1,2,3活动对象可追踪标记,保留,4,5非活动对象不可直接追踪标记,进行回收
3.分代回收
分配内存
-> 发现超过阈值了
-> 触发垃圾回收
-> 将所有可收集对象链表放到一起
-> 遍历, 计算有效引用计数
-> 分成 有效引用计数=0 和 有效引用计数 > 0 两个集合
-> 大于0的, 放入到更老一代
-> =0的, 执行回收
-> 回收遍历容器内的各个元素, 减掉对应元素引用计数(破掉循环引用)
-> 执行-1的逻辑, 若发现对象引用计数=0, 触发内存回收
-> python底层内存管理机制回收内存
简单来说:是个逐层筛选的过程
数据监控随着层级下降逐渐频繁。