首页
学习
活动
专区
圈层
工具
发布
30 篇文章
1
【愚公系列】2021年12月 Python教学课程 01-全方位解读Python
2
【愚公系列】2021年12月 Python教学课程 02-变量
3
【愚公系列】2021年12月 Python教学课程 03-数据类型
4
【愚公系列】2021年12月 Python教学课程 04-字符串
5
【愚公系列】2021年12月 Python教学课程 05-列表List
6
【愚公系列】2021年12月 Python教学课程 06-元组Tuple
7
【愚公系列】2021年12月 Python教学课程 07-字典Dict
8
【愚公系列】2021年12月 Python教学课程 08-基本语法
9
【愚公系列】2021年12月 Python教学课程 09-流程控制-顺序执行
10
【愚公系列】2021年12月 Python教学课程 10-流程控制-条件判断
11
【愚公系列】2021年12月 Python教学课程 11-流程控制-循环控制
12
【愚公系列】2021年12月 Python教学课程 12-Python函数
13
【愚公系列】2021年12月 Python教学课程 13-变量作用域
14
【愚公系列】2021年12月 Python教学课程 14-递归函数
15
【愚公系列】2021年12月 Python教学课程 15-匿名函数
16
【愚公系列】2021年12月 Python教学课程 16-推导式
17
【愚公系列】2021年12月 Python教学课程 17-模块与包
18
【愚公系列】2021年12月 Python教学课程 18-异常处理
19
【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义
20
【愚公系列】2021年12月 Python教学课程 20-面向对象编程-类和对象
21
【愚公系列】2021年12月 Python教学课程 21-面向对象编程-特殊成员和魔法方法
22
【愚公系列】2021年12月 Python教学课程 22-面向对象编程-封装、继承、多态
23
【愚公系列】2021年12月 Python教学课程 23-面向对象编程-运算符重载
24
【愚公系列】2021年12月 Python教学课程 24-Python数据库编程
25
【愚公系列】2021年12月 Python教学课程 25-Python文件读写
26
【愚公系列】2021年12月 Python教学课程 26-系统编程
27
【愚公系列】2021年12月 Python教学课程 27-算法
28
【愚公系列】2021年12月 Python教学课程 28-Web开发基础
29
【愚公系列】2021年12月 Python教学课程 29-MVC设计模式
30
【愚公系列】2021年12月 Python教学课程 30-Django简介

【愚公系列】2021年12月 Python教学课程 09-流程控制-顺序执行

文章目录

一、 顺序执行

虽然我们有各种流程判断、循环、跳转、控制、中断等等,但从根本上程序还是逐行顺序执行的。 Python 代码在执行过程中,遵循下面的基本原则:

  • 普通语句,直接执行
  • 碰到函数,将函数体载入内存,并不直接执行
  • 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
  • 碰到 if、for 等控制语句,按相应控制流程执行
  • 碰到 break,continue 等,按规定语法执行
  • 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码
代码语言:javascript
复制
if __name__ == '__main__'

很多时候,我们经常在 python 程序中看到这么一行语句,这里简要解释一下: 首先,__name__是所有模块都会有的一个内置属性,一个模块的__name__值取决于你如何调用模块。假如你有一个test.py文件,如果在a.py文件中使用import导入这个模块import test.py,那么 test.py 模块的__name__属性的值就是 test,不带路径或者文件扩展名。但是很多时候,模块或者说脚本会像一个标准的程序样直接运行,也就是类似 python test.py这种方式,在这种情况下, name 的值将是一个特别缺省值"main"。根据上面的特性,可以用 if name == 'main’来判断是否是在直接运行该 py 文件! 如果是,那么 if 代码块下的语句就会被执行,如果不是,就不执行。该方法常用于对模块进行测试和调试,区分直接运行和被导入两种情况的不同执行方式!

代码语言:javascript
复制
import os

print('<[1]> time module start')   #1


class ClassOne():
    print('<[2]> ClassOne body')  #2

    def __init__(self):
        print('<[3]> ClassOne.__init__')  #7

    def __del__(self):
        print('<[4]> ClassOne.__del__')   #14

    def method_x(self):
        print('<[5]> ClassOne.method_x')   #8

    class ClassTwo(object):
        print('<[6]> ClassTwo body')  #3


class ClassThree():
    print('<[7]> ClassThree body')  #4

    def method_y(self):
        print('<[8]> ClassThree.method_y')  #10   #12


class ClassFour(ClassThree):
    print('<[9]> ClassFour body')  #5


def func():
    print(" function func")

if __name__ == '__main__':
    print('<[11]> ClassOne tests', 30 * '.')  #6
    one = ClassOne()
    one.method_x()
    print('<[12]> ClassThree tests', 30 * '.')   #9
    three = ClassThree()
    three.method_y()
    print('<[13]> ClassFour tests', 30 * '.')  #11
    four = ClassFour()
    four.method_y()

print('<[14]> evaltime module end')   #13
下一篇
举报
领券