• 技术文章 >常见问题 >Python常见问题

    Python中的main函数解析

     Ly Ly2020-05-21 10:23:19原创6021

    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程序,结果如下

    p7.jpg

    运行print_main_module.py程序(将print_main_function.py作为module引入执行),结果如下

    p7.jpg

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

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

    专题推荐:main函数
    上一篇:python时间戳是啥意思? 下一篇:python怎么判断是否为纯字母?

    相关文章推荐

    • 怎么用python画表格?• 怎么用python创建一个函数?• 如何输出python版本号?• python2.0与python3.0的区别。• Queue是python哪个库?• python怎么关闭应用程序?• Python中的ord()函数怎么使用?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网