原回答: https://stackoverflow.com/questions/16869024/what-is-pycache

当你用python运行一个程序时,解释器首先将它编译成字节码(这是一种过度简化)并将其存储在__pycache__文件夹中。

如果你看看那里你会发现一堆文件共享项目文件夹中的.py文件的名称,只有他们的扩展名是.pyc或.pyo。

这些分别是您的程序文件的字节码编译和优化的字节码编译版本。

作为一名程序员,你可以在很大程度上忽略它......它所做的只是让你的程序开始更快一点。

当你的脚本改变时,它们将被重新编译,如果你删除了文件或者整个文件夹并且再次运行你的程序,它们将会重新出现(除非你明确地禁止了这个行为)

如果您使用的是cpython(这是最常见的,因为它是参考实现),并且您不需要该文件夹,那么可以通过启动具有-B标志的解释器来禁止它

python -B foo.py

python解释器的工作顺序:

1 完成模块的加载和链接;

2 将源代码编译为PyCodeObject对象(即字节码),写入内存中,供CPU读取;

3 从内存中读取并执行,结束后将PyCodeObject写回硬盘当中,也就是复制到.pyc或.pyo文件中,以保存当前目录下所有脚本的字节码文件;

4 之后若再次执行该脚本,它先检查【本地是否有上述字节码文件】和【该字节码文件的修改时间是否与其脚本一致】。是就直接执行,否则重复上述步骤。

最新文章

  1. (转)高效的将excel导入sqlserver中
  2. Hadoop学习
  3. java 类加载顺序
  4. HTML 中的meta标签中的http-equiv与name属性使用介绍
  5. 常用终端及git命令
  6. xpath选择器
  7. Book of Evil
  8. sql(SqlServer)编程基本语法
  9. (转)js学习笔记()函数
  10. C#中使用命名管道进行进程通信的实例
  11. ps2keyboard demo code for 8052
  12. Android TextView文字描边的实现!!
  13. Maze
  14. 第六十五,html嵌入元素
  15. Quart.Net分布式任务管理平台
  16. docker 2 docker介绍
  17. Linux 开机、重启和用户登录注销、用户管理
  18. sourcetree合并分支
  19. 安卓手机安装虚拟定位的方法Xposed安装器+模拟位置(Xposed模块)
  20. Jav实现F(n)=F(n-1)+F(n-2)+.....+F(1)+1

热门文章

  1. 1.2 the structure of a compiler
  2. Python+selenium之下载文件
  3. Autoit3脚本编写举例
  4. cv2.threshold 阈值灰度
  5. 校招准备-关系型数据库与nosql
  6. NOIP2013 表达式求值
  7. centos启动流程
  8. mysql主主复制汇总整理
  9. Thinkhphp5控制器调用的Model层的方法总结
  10. JAVA基础篇—基本数据类型