问题描述
在经历许多概念时,这涉及到我的观点(这可能很愚蠢)。 请告诉我以下情况是如何实现的
在一个文件夹中说我有“ z.pyc”文件(没有z.py)。
现在,我在同一位置创建了z.py。
根据我的理解,第一次执行z.py将更新z.pyc,因此从第二次试用起z.py和z.pyc应该给出相同的结果。
但这没有发生。 z.py和z.pyc每次都给出不同的结果。 请提出如何实现这种情况。
1楼
“ 首次执行z.py将更新z.pyc ”
不,“执行z.py
”将永远不会创建,更新或引用z.py
仅import z
语句将创建或使用z.pyc
。
1) .pyc
文件是在执行文件import
时创建的,而不是在run 执行文件时创建的。
2)如果需要, import z
将刷新编译的版本。
3)运行python z.pyc
将始终运行文件的编译版本,而python z.py
将永远不会运行文件的编译版本。
因此,可能导致上述混乱结果的一系列事件是:
$ echo "print 'first file'" > z.py
$ echo "import z" > main.py
$ python main.py
first file
$ echo "print 'second file'" > z.py
$ python z.py
second file
$ python z.pyc
first file
要学习的课程?
永远不要运行python z.pyc
,永远不要运行python z.py
。