Python编程之顺序执行与程序的主入口详解
网络豆 人气:0前言
本章将会讲解Python编程中的顺序执行与程序的主入口。
1.顺序执行(了解)
Python代码在执行过程中,遵循下面的基本原则:
- 普通语句,直接执行;
- 碰到函数,将函数体载入内存,并不直接执行
- 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
- 碰到if、for等控制语句,按相应控制流程执行
- 碰到@,break,continue等,按规定语法执行
- 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码
# #对于普通语句,代码从上之下执行 # print("hello world") # print("hello world") # print("hello world") #此时代码从上之下执行,但是函数只有在调用时才会执行 # def func_name(): # print("i am func name") # func_name() # class MyClass: # print("i am myclass") # # def my_text(self): # print("i am mytest ") # # # d = MyClass() # d.my_test()
2.程序主入口(熟悉)
一个 .py,除了可以被直接运行外,还可以作为模块, 被其他 .py文件导入。不管是直接运行还是被导 入,.py 文件的最顶层代码都会被运行( Python 用缩 进来区分代码层次)。 但是当一个 .py 文件作为模块被导入时,我们可能不 希望一部分代码被运行。那么就可以将这部分代码的 调用写在主程序中。
def func_one(): print("func_one") def func_two(): print("func_two") func_one() #程序的主入口 if __name__ == '__main__': func_two()
#当我导入了demo19之后,运行demo13的话,会执行demo3内部的代码 import demo19 #执行demo4,竟然只打印输出了func_one
再来解释下
所以上面代码 if 的意思就是:如果运行的程序是你自己,那么就 print....
假设运行的是 xiaoming.py,那么就会执行主函数
假设运行的是 xiaohong.py,即使 xiaohong 导入了 xiaoming,也不会执行 xiaoming.py 里面的主函数(main 函数)
是否一定需要执行入口(主函数)
不一定
假设没有主函数,那么运行 xiaoming.py 时,就会至上而下,逐行运行 xiaoming.py 的所有代码
执行入口的意义
将业务代码写在主函数上面,主函数用来调用有业务代码,代码结构整洁
向 Java、C、Golang 看齐,他们都是要求一个程序必须有一个主执行入口才能正确运行
总结
加载全部内容