首页 > 其他分享 >pyhton中_自动生成的_pycache__文件夹

pyhton中_自动生成的_pycache__文件夹

时间:2023-03-20 16:24:54浏览次数:36  
标签:__ pycache 导入 pyhton 编译 文件夹 模块

_pycache__文件夹可以看作该文件夹下文件已被python接管或者说编译过。
在第一次执行代码的时候,Python解释器已经把编译的字节码放在__pycache__文件夹中,这样以后再次运行的话,如果被调用的模块未发生改变,那就直接跳过编译这一步,直接去__pycache__文件夹中去运行相关的 *.pyc 文件,大大缩短了项目运行前的准备时间。

解释器的具体工作:

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

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

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

再看_pycache__文件夹下生成的文件名为*.cpython-30.pyc的文件名的含义,其中cpython表示c语言实现的Python解释器,而代表的是版本为3.0版。

其实,在Python中导入模块时,实际上会把被导入的模块执行一遍。

一般来说,我们在主函数中使用if __name__ == '__main__':是为了保证导入的模块不被执行。因为_name_代表的是当前模块的名字,也就是'__main__',而新导入的模块的名字为其自身的名字,例如为test.py,那么经过判断后,就不会被执行。

标签:__,pycache,导入,pyhton,编译,文件夹,模块
From: https://www.cnblogs.com/ggonekim/p/17236726.html

相关文章

  • 【应用】Lagrange 反演应用
    证明鸽了,所以先开始应用篇。对于一元多项式\(F,G\)我们有Lagrange反演公式:\[n[x^n]F^k=k[w^{-k}]G^{-n}\]绝大多数情况我们都取\(k=1\)。其中多项式\(G\)为\(F......
  • 面试高频问题之C++11新特性
    背景C++11是C++语言的一个重大更新,引入了许多新特性,包括自动类型推导、lambda表达式、右值引用、智能指针等等。这些新特性使得C++更加现代化、高效、易用。也是面试容很......
  • 【题解】CF889E
    题目描述\[f(x,n)=x\moda_n\]\[f(x,i)=(x\moda_i)+f(x\moda_i,i+1)\]给出a序列,当x取遍所有非负整数时\(f(x,1)\)的最大值。题解首先注意到\(a_i\)只......
  • 常用开源微服务框架有几个特点?
    近些年,随着低代码开发技术的盛行,开源微服务框架的发展也逐渐成熟。很多客户朋友咨询关于开源微服务的特点和优势,今天,我们就针对客户朋友较为关注的话题做一个内容介绍。概......
  • 使用Optional优雅避免空指针异常
    本文已收录至Github,推荐阅读......
  • selenium自动登录博客园,抽屉半自动点赞,xpath使用,selsenium动作链自动登录12306,打码平
    内容回顾beautifulsoup4使用xml解析库,用它,来解析爬取回来的html内容,从中找出我们需要的内容遍历文档树标签点html.body.p.a获取属性对象.attrs.get('href')获取文本......
  • Java HashMap为什么线程不安全
    一、学习目标1、HashMap线程不安全原因:原因:JDK1.7中,由于多线程对HashMap进行扩容,调用了HashMap#transfer(),具体原因:某个线程执行过程中,被挂起,其他线程已经完成数据迁......
  • Qt+OpengGL使用教程(3)绘制矩形
    在Qt+OpengGL使用教程(2)中我们绘制了三角形,接下来我们需要使用qt的API绘制一个矩形,同时参考和对照:LearnOpenGL(3)绘制矩形。一、准备工作元素缓冲对象(EBO) 二、绘制矩......
  • 商品占比
    #-*-coding:utf-8-*-#代码8-1查看数据特征importnumpyasnpimportpandasaspdinputfile="D:\GoodsOrder.csv"#输入的数据文件data=pd.read_csv(inputf......
  • What is .NET MAUI? —— a cross-platform framework for creating native mobile a
    https://learn.microsoft.com/en-us/dotnet/maui/what-is-maui?view=net-maui-7.0 .NETMulti-platformAppUI(.NETMAUI)isacross-platformframeworkforcreati......