源起
今天和一新来的同事沟通,说他用python编写了一个工程,但在第一次运行后,发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种以 .cpython-35.pyc 结尾的文件,问同事都不太清楚,所以便抽空整理了一下该知识点。先解释下cpython-35,cpython代表的是c语言实现的Python解释器,-35代表的是版本为3.5版。
至于pyc,先来了解一下模块的调用。
模块的调用
Python中导入模块时,实际上会把被导入的模块执行一遍,如下:
先看被调用的模块test.py:
def haha():
print("哈哈")
haha()
再看主程序main.py:
import test
print("一条大树")
执行结果是:
哈哈
一条大树
那怎么才能只是单纯调用而不执行被调用模块的代码呢?要想被调用模块代码不被执行,前提得知道变量__name__是什么意思,简单来说就是,如果不涉及模块导入的话,__name__的值就是” __main__“,如果当此模块被导入引用的话,那么这个模块内的__name__值就是文件的名字(不带.py),如下test_1.py: