文章目录
- 五、Python垃圾回收
- 1.引用计数(主)
- 2.GC负责的主要任务
- 3.标记-清除
- 4.引用计数不能回收的案例分析
- 5.分代收集
- 6.GC的阈值
- 7.GC垃圾回收自动触发机制
- 7.内存优化
- 8.pep8原则
- 9.命令行参数
五、Python垃圾回收
1.引用计数(主)
import sys
a=[]
print(sys.getrefcount(a))#两次引用计数
2.GC负责的主要任务
3.标记-清除
4.引用计数不能回收的案例分析
5.分代收集
6.GC的阈值
有三种情况会触发垃圾回收:
1.当gc模块的计数器达到阀值的时候,自动回收垃圾
2.调用gc. collect(),手动回收垃圾
3.程序退出的时候,python解释 器来回收垃圾
7.GC垃圾回收自动触发机制
7.内存优化
- 大整数池和小整数池的区别是:
- 从结果来看是一样的
- 大整数池是没有提前的创建好对象,是个空池子,需要我们自己去创建,创建好之后,会把整数对象保存到池子里面,后面都不需要再创建了直接拿来使用,小整数池是提前将[-5,256]的数据都提前创建好
8.pep8原则
9.命令行参数
import sys
print(len(sys.argv))
print(str(sys.argv))
- 案例
import argparse
#创建一个解析器对象
parse=argparse.ArgumentParser(prog= '系统登录',usage= '%(prog)s[options] usage',description='系统自定义命令行的文件',epilog= 'my - epilog')
#添加位置参数[必选参数]
parse.add_argument('loginType ',type=str, help=' 登录系统类型')
#添加可选参数
parse.add_argument('-u',dest='user',type=str,help= '你的用户名')
parse.add_argument('-p',dest='pwd',type=str,help= '你的密码')
result=parse.parse_args() #开始解析参数
if (result.user=='root' and result.pwd== '111111' ):
print( ' login sucess!' )
else:
print('login fail ' )
python test.py mysql -u root -p 111111