理解python的main函数

首先来看一段代码。

http://www.cnblogs.com/keguo/p/9760361.html

# 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__)

直接执行会输出,

__name__value:main

代码段二 文件1 main_test.py

代码块
# import os
# import time
import datetime

print('Hello World!')
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_module.py输出为:

hello world!
__name__value:,print_main_function
Done!

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 3,845评论 0 27
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,257评论 4 16
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,952评论 0 38
  • 敲打的键盘 每一句都是自己的话 圈住的 只有夜 红茶 苦涩得像孤独 连汤色都是寂寞的红 还有什么来述说内心的想 纸...
    栖支阅读 158评论 0 0
  • 5星推荐 不要被豆瓣评分迷惑。 怎么说呢,其实我觉得如果带着一种审视的心态看这部电影,该是很无趣吧。批评当然...
    王哈哈233阅读 426评论 0 0