python项目---数据可视化(02)
今天编写程序时,发现了一个有趣的现象。当执行import语句时,运行以后,将会脚本目录下生成一个__pycache__文件。于是做了如下总结解释:
一. python基本运行机制
Python程序运行时不需要编译成二进制代码,而直接从源码运行程序,简单来说是,Python解释器将源码转换为字节码,然后再由解释器来执行这些字节码。
解释器的具体工作:
1 完成模块的加载和链接;
2 将源代码编译为PyCodeObject对象(即字节码),写入内存中,供CPU读取;
3 从内存中读取并执行,结束后将PyCodeObject写回硬盘当中,也就是复制到.pyc或.pyo文件中,以保存当前目录下所有脚本的字节码文件;
* 之后若再次执行该脚本,它先检查【本地是否有上述字节码文件】和【该字节码文件的修改时间是否与其脚本一致】。是就直接执行,否则重复上述步骤。
二. 为何会出现该文件
python解释器会将 *.py 脚本文件进行编译,并将编译结果保存到__pycache__
目录中。
下次再执行工程时,若解释器发现这个 *.py 脚本没有修改过,就会跳过编译这一步,直接运行以前生成的保存在 __pycache__
文件夹里的 *.pyc 文件。
这样工程较大时就可以大大缩短项目运行前的准备时间;如果你只需执行一个小工程,没关系 忽略这个文件夹就行。
三. 如何使该文件不出现
1. 单次关闭: 运行脚本时添加 -B
参数即可
2. 永久关闭: 设置环境变量 PYTHONDONTWRITEBYTECODE=1
即可
四. 解释下该文件的内容
该文件里有大小随时变化的类似格式random_walk.cpython-37.pyc文件,点号中的第一位代表被inport进来的模板。cpython-37
,cpython
代表的是c语言实现的Python解释器,-37
代表的是版本为3.7版。
五. 模块调用
Python中导入模块时,实际上会把被导入的模块执行一遍,如下:
先看被调用的模块test.py
:
def haha():print("哈哈") haha()
再看主程序main.py
:
import testprint("一条鱼")
执行结果是:
哈哈
一条鱼
那怎么才能只是单纯调用而不执行被调用模块的代码呢?要想被调用模块代码不被执行,前提得知道变量__name__
是什么意思,简单来说就是,如果不涉及模块导入的话,__name__
的值就是” __main__
“,如果当此模块被导入引用的话,那么这个模块内的__name__
值就是文件的名字(不带.py),如下test_1.py
:
def haha():print("哈哈") haha() print(__name__)
test_1.py
执行结果为:
哈哈
__main__
如果test_1
被导入引用的话,如test_2
:
import test_1print("一条鱼")
test_2
x运行结果为:
哈哈
test_1
一条鱼
上边所说要是弄懂的话,那我们在被调用的模块中,可执行的代码前加上这么一句判断,if __name__ == '__main__':
,被调用的模块的代码就不会被执行了!或者再启动的时候添加选项参数。这个文件时可以删除的,不过删除意义不大。反而存在的话,加载会更快。
note: pyo和.pyc文件的执行速度不会比.py文件快,快的地方在于模块加载的速度
参考文献:
https://blog.csdn.net/yitiaodashu/article/details/79023987
https://www.cnblogs.com/Ralph-Wang/archive/2013/11/23/3439080.html
https://jingyan.baidu.com/article/c14654134a7bdd0bfcfc4cea.html
转载于:https://www.cnblogs.com/Hermioner/p/9448627.html
python项目---数据可视化(02)相关推荐
- python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- python画图代码大全-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- python处理数据可视化_数据整理101:使用Python提取,处理和可视化NBA数据
python处理数据可视化 由Viraj Parekh | 2017年4月6日 (by Viraj Parekh | April 6, 2017) This is a basic tutorial u ...
- 【Python】数据可视化教程来了!
来自:Datawhale????数据可视化小组 开源初衷 Matplotlib可以说是python数据可视化最重要且常见的工具之一,几乎每个和数据打交道的人都不可避免,还有大量可视化工具是基于它的二次 ...
- 『数据可视化』基于Python的数据可视化工具
刘宇宙,现在一家创业型公司做技术总负责,做爬虫和数据处理相关工作,曾从事过卡系统研发.金融云计算服务系统研发,物联网方向大数据研发,著书一本,<Python3.5从零开始学> 如何做Pyt ...
- python实现数据可视化_使用Matplotib python实现数据可视化
python实现数据可视化 I Feel: 我觉得: In today's digital world data has become as important as air. Machines &a ...
- python气象数据可视化学习记录1——基于ERA5数据画风场和海平面气压填色叠加图
python气象数据可视化学习记录1--基于ERA5数据画风场和海平面气压填色叠加图 1. 写在前面 2. 图片效果 3. 逐步代码解析 3.1导入库 3.2 读取NC格式数据 3.3 对数据进行加工 ...
- Python Matplotlib数据可视化绘图之(六)————图片大小、颜色、标题、纵横坐标、画布和绘图区域背景颜色、Legend(图例)等的参数设置详解
文章目录 前言 一.图片大小的设定和调节 1. 三种调整matplotlib图片大小的方法 1.1 plt.figure(figsize=(n, n)) 1.1.1 代码如下: 1.1.2 输出结果如 ...
- 视频教程-Python大数据可视化-Python
Python大数据可视化 7年软件开发架构经验,12年IT培训经验,曾就职于拜特科技,金蝶软件,软酷网络等多家互联网公司.擅长Java EE,前端,iOS及大数据等技术方向的开发及教学.策划并撰稿大数 ...
- python与excel做数据可视化-用Python进行数据可视化的10种方法
原标题:用Python进行数据可视化的10种方法 2015-11-19 关于转载授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+转载&quo ...
最新文章
- C++ 虚函数和纯虚函数的用法
- 是时候不把智能手机叫做电话了:移动AI时代来临!
- 用移位寄存器实现边沿检测(功能仿真及ISE综合)
- Pandas与openpyxl库的 完美 融合!
- POJ 2135 最小费用最大流
- SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
- Python面试题之下面代码会输出什么
- Android应用开发
- Android Jetpack组件之App Startup,源码+原理+手写框架
- Eclipse阿里巴巴Java开发规范插件安装
- Java 解析Tiff深入研究
- 《葬花吟》笛箫简谱-红楼梦主题曲
- Bean无法注入,‘sqlSessionFactory‘ threw exception,‘dataSource‘ threw exception大坑
- 小米路由器3c 虚拟服务器,小米路由器3C上不了网怎么办?
- 你也可以找到好工作(三)大结局
- 视觉检测零件同轴度 测试零件同轴度,检测是否同心圆
- 折腾黑群晖之域名直接访问群晖
- Mysql 利用存储过程 实现单据号码(单号)生成器(万能版)
- 应该如何进行程序化交易系统的检验?
- 计算机谱写的音乐,用WPSOffice谱写音乐简谱
热门文章
- 【渝粤教育】国家开放大学2018年春季 0557-21T广告设计 参考试题
- DataSet本地化数据的二表链接操作
- ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM
- AtCoder Beginner Contest 137 解题报告(A ~ E)
- python之路 -- 并发编程之进程
- 1章 SpringBoot介绍
- eclipse安装lua
- 如何才能让项目团队高效稳定?
- AngularJs + angular-ui-router + bootstrap 实现blog基础导航功能
- [No000057]一个人默默背单词,小心被传染哦