Python是一种比较灵活的解释型脚本语言,其中定义的main()函数只有在Python脚本直接作为执行器时才会执行;
当 python 脚本作为模块导入时,其中的 main() 函数将不会被执行。
这是由于两方面原因:
一方面,main函数是所有执行程序的入口;
另一方面,python 的解释器按顺序执行脚本,不会调用任何不属于程序本身的代码和函数。
需要补充的一点是,如果作为模块或库导入到程序中,会直接成为代码的一部分。
下面通过程序可以更好的理解main函数的作用,这里我们写了两个程序print_main_function.py和print_main_module.py
print_main_function.py
# import os
# import time
import datetime
print('Hello World!')
print('Time is ', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A'))
print('__name__ value: ', __name__)
def main():
print('this message is from main function')
if __name__ == '__main__':
main()
# print(__name__)
print_main_module.py
import print_main_function
print("Done!")
单独运行print_main_function.py程序,结果如下
运行print_main_module.py程序(将print_main_function.py作为module引入执行),结果如下
对比两个程序的运行结果可以发现,当直接运行包含main函数的程序时,会执行main函数,程序的__name__变量的值为'__main__'。
当包含main函数的程序作为模块导入时,模块程序(print_main_function.py)对应的__name__变量值就是模块对应的函数名,所以模块程序中的main函数(print_main_function.py)会不被执行。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ win7安装python的方法11/26
- ♥ 如何将python打包成exe文件11/09
- ♥ 如何在python中清除数组元素10/18
- ♥ 如何实现python tkinter布局接口?12/07
- ♥ python中ndarray常用函数的使用12/29
- ♥ python中实现矩阵乘法的几种方法08/24
内容反馈