python——__name__ == "__main__"用法理解

作为解释性脚本语言,python程序并没有特定的main()主程序入口,一般就是自顶向下,逐行执行,一般python可以理解__name__ == "__main__"为程序的执行入口。

  1. __name__的理解

    __name__方法是python中的一个内置函数,记录的值就是一个字符串

    如果是在当前文件中执行,记录的值就是__main__

    在test1文件中编写

    print(__name__)		#输出__manin__说明此时是在本文件中执行
    
    输出结果:
    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
    
  2. 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文件执行的场景,使用该函数的最大作用就是为了控制该函数下面的语句在其他文件中导入时不执行效果。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐