首先来看一段代码。
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函数不会被执行。
网友评论