Python学习-9.1 程序界面-main函数的作用

Source

main函数的两种使用功能
情况1:直接执行本py代码文件时,把包含的代码块视为脚本代码顺序执行;
情况2:当本py代码文件作为其他代码import对象时,不执行如下被包含的代码

下面可以通过程序来更好地了解main函数的作用,这里我们编写两段程序进行说明
①main_function.py

import sys  # 标准库system
from PyQt5.QtWidgets import QApplication, QWidget


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(350, 350)
        self.show()

print('__name__ value: ', __name__)

if __name__ == "__main__":
	print('this message is from main function')
    app = QApplication(sys.argv)  # sys.argv是一个从程序外部获取参数的桥梁
    ex = Example()
    sys.exit(app.exec_())

运行main_function.py文件
运行结果:

__name__ value:  __main__
this message is from main function

并输出窗口
在这里插入图片描述
可以看到此时__name__的值是__main__,并运行了if __name__ == "__main__":后面的代码。

②main_module.py

import main_function#引入main_function.py文件
import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)  # sys.argv是一个从程序外部获取参数的桥梁
b = main_function.Example()
sys.exit(app.exec_())

运行main_module.py文件
运行结果:

__name__ value:  main_function

并输出窗口
在这里插入图片描述
可以看到此时__name__的值是main_function,并且并未运行main_function.py文件中if __name__ == "__main__":后面的代码。

对比两段程序运行结果可发现,当直接运行包含main函数的程序时,main函数会被执行,同时程序的__name__变量值为'__main__'

当包含有main函数的程序被作为module被import时,该module程序(main_function.py)对应的__name__变量值为该module对应的函数名称,因此该module程序(main_function.py)中的main函数不会被执行。