Python主要功能
仅当Python主要功能作为python程序执行时才执行。
如您所知,我们还可以将python程序作为模块导入,在这种情况下,不应执行python main方法。
Python主要功能
主要功能是任何程序的入口。
但是python解释器会顺序执行源文件代码,并且如果不属于代码,则不会调用任何方法。
但是,如果直接将其作为代码的一部分,则将文件作为模块导入时将执行该代码。
这就是为什么有一种特殊的技术可以在python程序中定义main方法,以便仅在程序直接运行时才执行,而在作为模块导入时则不执行。
让我们看看如何在一个简单的程序中定义python main函数。
python_main_function.py
print("Hello") print("__name__ value: ", __name__) def main(): print("python main function") if __name__ == '__main__': main()
当执行python程序时,python解释器开始其中执行代码。
它还设置了一些隐式变量值,其中之一是" name",其值设置为" main"。对于python main函数,我们必须定义一个函数,然后使用
if __name__ =='__main __'
条件执行该函数。如果将python源文件作为模块导入,则python解释器会将__name__值设置为模块名称,因此if条件将返回false且不会执行main方法。
Python为我们提供了灵活的方式来保留main方法的任何名称,但是最好的做法是将其命名为main()方法。
下面的代码是完全可以的,但是不建议这样做。
下图显示了将python_main_function.py作为源文件执行时的输出。
Python主要功能作为模块
现在,我们将上面的python源文件用作模块并导入另一个程序。
python_import.py
def main1(): print("python main function") if __name__ == '__main__': main1()
现在,当执行上面的程序时,将产生下面的输出。
import python_main_function print("Done")
注意,前两行是从python_main_function.py源文件中打印出来的。
注意__name__的值不同,因此不会执行main方法。
请注意,python程序语句是逐行执行的,因此务必先定义main()方法,然后再执行if条件以执行main方法。
否则,您将收到错误,因为" NameError:名称'main'未定义"。