python——__name__ == "__main__" 用法理解
作为解释性脚本语言,python程序并没有特定的main() 主程序入口,一般就是自顶向下,逐行执行,一般python可以理解__name__ == "__main__" 为程序的执行入口。
-
__name__ 的理解 __name__ 方法是python中的一个内置函数,记录的值就是一个字符串 如果是在当前文件中执行,记录的值就是__main__ 在test1文件中编写 print(__name__)
输出结果:
C:\Users\qun\AppData\Local\Programs\Python\Python37\python.exe C:/Users/qun/Desktop/python封装项目/test1.py
__main__
如果是在另外的py文件中执行,记录的值就是模块名 在test2文件中编写 import test1 #输出的是文件文件名,说明是在其他文件中导入执行的
输出结果:
C:\Users\qun\AppData\Local\Programs\Python\Python37\python.exe C:/Users/qun/Desktop/python封装项目/test2.py
test1
-
python文件一般可以有两种执行的方式
- 自己在本文件当中直接执行
- 作为模块在另外的.py文件中导入执行
综合案例:
创建两个文件来计算面积
参数文件argument.py内容如下:
length = 10
width = 10
def get_area():
print("长度:{}".format(length))
print("宽度: {}".format(width))
get_area()
C:\Users\qun\AppData\Local\Programs\Python\Python37\python.exe C:/Users/qun/Desktop/python封装项目/argument.py
长度:10
宽度: 10
进程已结束,退出代码0
计算文件Area.py内容如下:
import argument
print("计算面积为:{}".format(argument.length * argument.width))
C:\Users\qun\AppData\Local\Programs\Python\Python37\python.exe C:\Users\qun\Desktop\python封装项目\Area.py
长度:10
宽度: 10
计算面积为:100
进程已结束,退出代码0
从以上的例子可以看到,如果将文件作为模块导入使用的话,模块文件中的代码会被逐步执行,有时我们只需要模块文件中的某些参数,不需要某些代码执行,此时就可以借助于__name__ == "__main__" 来控制语句的执行,在__name__ 下的语句在导入时不执行
修改argument.py文件
length = 10
width = 10
def get_area():
print("长度:{}".format(length))
print("宽度: {}".format(width))
if __name__ == "__main__":
get_area()
再次执行Area.py文件
C:\Users\qun\AppData\Local\Programs\Python\Python37\python.exe C:\Users\qun\Desktop\python封装项目\Area.py
计算面积为:100
进程已结束,退出代码0
总结:
__name__ == "__main__" 函数是用来控制python文件执行的场景,使用该函数的最大作用就是为了控制该函数下面的语句在其他文件中导入时不执行效果。
|