最近在使用python写一个串口模块的时候,偶然发现运行脚本之后,在工程文件夹下面出现了这样一个文件夹__pycache__,所以就特意到网上查了一下这个文件夹是怎么回事。
我们先在源文件中添加一些内容,如下:
在serialPortFile.py文件中添加下面两条语句
运行此文件,控制台输出如下
同样在main.py文件中添加下面两句话
运行此文件,控制台输出如下
从上面的结果中可以看到,当文件被执行时,其__name__的值就是”__main__“,当文件是被调用的时候,其__name__的值就是其文件名(不带.py)。
所以,当我们想让文件中的某一部分在文件被执行的时候才运行,而在文件被调用的时候不被执行,可以使用if __name__ == '__main__':这样的语句实现这样的功能。
接下来说说__pycache__文件夹的事情。下面是参考网上的一个回答
python解释器会将 *.py 脚本文件进行编译,并将编译结果保存到__pycache__目录中。下次再执行工程时,若解释器发现这个 *.py 脚本没有修改过,就会跳过编译这一步,直接运行以前生成的保存在 __pycache__文件夹里的 *.pyc 文件。这样工程较大时就可以大大缩短项目运行前的准备时间;如果你只需执行一个小工程,没关系 忽略这个文件夹就行。
如何使__pycache__文件夹不出现:
单次: 运行脚本时添加 -B 参数
python -B foo.py
永久: 设置环境变量 PYTHONDONTWRITEBYTECODE=1
更多内容关注公众号 洛水梅家