Python作为一门较为灵活的解释型脚本语言,其中定义的main()函数只有当该Python脚本直接作为执行程序时才会执行;
当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。
这是由于两方面原因:
一方面,main函数是所有执行程序的入口;
另一方面,python的解释器是顺序执行脚本的并且不会调用任何不属于程序本身的代码和函数。
需要补充说明的一点是,如果是被作为一个模块或库import到程序中,则会直接成为代码的一部分。
下面可以通过程序来更好地了解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函数的程序被作为module被import时,该module程序(print_main_function.py)对应的__name__变量值为该module对应的函数名称,因此该module程序(print_main_function.py)中的main函数不会被执行。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!