001.Python基础语法_程序执行机制

文章详细阐述了Python程序的执行机制,包括如何编译源码为pyc文件以及何时重编译。它还提到了Python的解释执行过程,特别是在处理import语句时的行为。此外,文章涵盖了Python虚拟环境的搭建,PyQt5GUI教程,Oracle数据库学习资源以及可用的下载资料。
摘要由CSDN通过智能技术生成

在这里插入图片描述

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈

在这里插入图片描述

Python程序执行机制

在这里插入图片描述

  • 执行步骤:
    • python源文件执行的时候,首先识别源码中是否包含import语句导入其他模块(包)
    • 没有import语句
      • 将源码a.py进行编译,生成PyCodeObject(字节码)<存储在内存中,并不会生成.pyc持久化文件>
      • 根据源文件a.py生成的PyCodeObject进行解释执行
    • 有import语句
      • 判断是否存在已经编译好的b.pyc文件(持久化的字节码文件)
      • 存在已经编译好的pyc文件
        • 判断pyc文件中存储的源文件修改时间是否与源文件b.py的真实修改时间一致
        • 修改时间一致
          • 根据b.pyc文件中的PyCodeObject进行解释执行
          • 根据源文件a.py生成的PyCodeObject进行解释执行
        • 修改时间不一致
          • 重新编译源码b.py,生成PyCodeObject
          • 将编译结果存储到可执行文件b.pyc,并且记录源码最后修改时间
          • 根据b.pyc文件中的PyCodeObject进行解释执行
          • 根据源文件a.py生成的PyCodeObject进行解释执行
      • 没有已经编译好的pyc文件
        • 重新编译源码b.py,生成PyCodeObject
        • 将编译结果存储到可执行文件b.pyc,并且记录源码最后修改时间
        • 根据b.pyc文件中的PyCodeObject进行解释执行
        • 根据源文件a.py生成的PyCodeObject进行解释执行
  • 总结:python语言既不是单纯的解释型语言,也不是单纯的编译型语言。

手动编译Python源码为pyc持久化文件

  • 语法:
    python -m py_compile filename.py
    
  • 编译后的可执行文件可以对源文件有一定的保护作用,但是也架不住反编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值