python怎么让py里面逐行运行_Python面试|一文让你读懂if __name__=='__main__'的含义...

喜欢Python的小伙伴,希望本篇文章可以给你带来帮助!^.^

看到最后,给自己一个学习的基地!不管你是大佬还是小白,一起学习共同进步!感谢大家一直来的支持!

程序入口

对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样,Java 和 C# 必须要有一个包含 Main 方法的主类来作为程序入口。

而 Python 则有不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。而实际上在导入的时候,有一部分代码我们是不希望被运行的。

举一个例子来说明一下,假设我们有一个 const.py 文件,内容如下:

python怎么让py里面逐行运行_Python面试|一文让你读懂if __name__=='__main__'的含义..._第1张图片

我们在这个文件里边定义了一些常量,然后又写了一个 main 函数来输出定义的常量,最后运行 main 函数就相当于对定义做一遍人工检查,看看值设置的都对不对。然后我们直接执行该文件(python const.py),输出:

PI: 3.14

现在,我们有一个 area.py 文件,用于计算圆的面积,该文件里边需要用到 const.py 文件中的 PI 变量,那么我们从 const.py 中把 PI 变量导入到 area.py 中:

from const import PI​def calc_round_area(radius): return PI * (radius ** 2)​def main(): print "round area: 

你可能感兴趣的:(python怎么让py里面逐行运行_Python面试|一文让你读懂if __name__=='__main__'的含义...)