Python执行分三阶段:解析编译、模块加载与初始化、顶层语句顺序执行;import立即执行被导入模块顶层代码;def/class声明即创建对象但不运行内部代码;顶层代码严格按书写顺序执行,__name__=="__main__"是条件执行的普通语句。

Python代码不是从头到尾“线性读完就结束”的,它的执行有明确的阶段划分:先解析(语法检查、编译成字节码),再加载模块、初始化命名空间,最后按顺序逐行执行语句。理解这个流程,能帮你快速定位导入错误、变量未定义、装饰器不生效等常见问题。
模块导入阶段:import不是“运行时才查”
当执行import语句时,Python会立即查找、编译并执行被导入模块的顶层代码(即不在函数或类定义内部的语句)。这意味着:
- 被导入模块中的print("hello")会在import那一行就输出,不是等到你调用它里面的函数才执行
- 如果模块里有语法错误,即使你只import、没调用任何功能,也会在导入时报错
- from module import x同样触发整个模块的执行,只是只把x放进当前命名空间
函数与类定义:声明即执行,但内容不运行
def和class语句本身是可执行语句——它们会在定义处立刻创建函数对象或类对象,并绑定到名称上。但函数体或类体内的代码不会执行,直到你显式调用。
- def f(): print("run") 这行执行后,只是创建了函数f,不打印任何内容
- f() 才真正进入函数体,执行print
- 类定义中的方法也是函数对象,只有实例调用时才运行;但类体中直接写的语句(如print、赋值)会在class语句执行时立即运行
顶层代码:按书写顺序逐行执行
模块最外层(缩进为0级)的语句,按从上到下的顺序依次执行。这是最容易被忽略的关键点:
安装教程: 1.将解压包文件全部解压到根目录 2.运行 您的域名/install 3.登录后台 您的域名/dede(帐号密码全为admin) 4.系统-数据库备份/还原-还原全部数据 5.设置系统基本参数 6.清理缓存 7.生成全部 (注:以上步骤不可以省略或者更改顺序) 修改教程: index 主页文件 head 头部文件 footer 底部文件 list 列表文件 article 内容文件
立即学习“Python免费学习笔记(深入)”;
- 变量必须先定义再使用:print(a); a = 1 会报NameError
- 函数调用必须在def之后(除非在另一个函数内,且该函数尚未被调用)
- if/for/while等控制结构,其内部缩进代码块只在条件满足或循环发生时才执行,但if语句本身(包括判断条件)是在该行被执行的
__name__ == "__main__" 的作用时机
这行判断出现在模块末尾,它的意义在于:只有当该Python文件被直接运行(而非被import)时,__name__才是"__main__",里面的内容才会执行。
- 它不是“启动入口”,而是顶层代码的一部分,和其他语句一样按顺序执行
- 常用来放测试代码或主程序逻辑,避免被import时意外触发
- 它不能改变Python的执行流程顺序,只是靠条件控制是否执行某段代码









