Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 

  什么场景下会有main函数?

  当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。

  main函数的作用?

  __name__ == '__main__'是Python的main函数入口。并非说,加入这句才能使用python xxx.py来执行,而是说,这里可以判断,当前是否是直接被python直接调用执行。

  main为什么只有文件当作执行程序的时候才会被执行呢?

  这是由于两方面原因,一方面,main函数是所有执行程序的入口;另一方面,python的解释器是顺序执行脚本的并且不会调用任何不属于程序本身的代码和函数,需要补充说明的一点是,如果是被作为一个模块或库import到程序中,则会直接成为代码的一部分。

  参考代码:

  文件:main_function.py

复制代码
 1 import datetime
 2 
 3 print('Hello World!')
 4 print('Time is ', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A'))
 5 
 6 
 7 def main():
 8     print('this message is from main function')
 9 
10 
11 if __name__ == '__main__':
12     main()
复制代码

  执行结果:

  

➜  main git:(master) ✗ py main_function.py
Hello World!
Time is  2019-07-22 09:50:50 Monday
this message is from main function

  文件二:test_main.py

import main_function

print("Done!")

  执行结果:

➜  main git:(master) ✗ py test_main.py
Hello World!
Time is  2019-07-22 09:52:00 Monday
Done!

 

posted on   虚生  阅读(1245)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示