如果你经常使用的是C语言或者其他高级语言,当你去开始阅读代码的时候,你总会不自觉的去找main函数,但是当你初次接触Python的时候可能会感觉到不习惯,因为Python没有main主函数。

python 代码的执行不依赖于 main()函数;
python 代码从没有缩进的代码开始执行。

  python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。
  每个文件(模块)都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分主执行文件还是被调用的文件,因此python就引入了一个机制。

if __name__ == "__main__":  

  如果我们在程序里面添加如上的代码,编译器就能识别出从哪里开始。这句话的含义:如果这个文件被别的文件当作模块调用了,那么此时name 就会变为文件的名字,否则默认是main,那么整个工程就会从这句话下面的没有缩进的代码开始执行。说的可能比较拗口,直接看个例子吧。

if __name__ == "__main__":  print("Hello World!")  def test():  print("test")  def main():  print("main")  main()  

执行结果

Hello World!
main

  可以看到代码先打印的不是main因为,程序从if name == “main“:下面没有缩进的代码开始执行,类和函数不在内。先打印了Hello World!,然后执行main函数打印出main;

python-从哪里开始执行?相关推荐

  1. Python中的GIL和深浅拷贝

    Python中的GIL和深浅拷贝 文章目录 Python中的GIL和深浅拷贝 一.GIL全局解释器锁 1.引入 2.GIL 3.Python GIL底层实现原理 4.计算密集型和IO密集型 5.解决G ...

  2. python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

    通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...

  3. python GIL 全局解释器锁详解

    Python多线程另一个很重要的话题--GIL(Global Interpreter Lock,即全局解释器锁)鲜有人知,甚至连很多Python老司机都觉得GIL就是一个谜 一.一个不解之谜 耳听为虚 ...

  4. Python基础知识——函数的基本使用、函数的参数、名称空间与作用域、函数对象与闭包、 装饰器、迭代器、生成器与yield、函数递归、面向过程与函数式(map、reduce、filter)

    文章目录 1 函数的基本使用 一 引入 二 定义函数 三 调用函数与函数返回值 2 函数的参数 一 形参与实参介绍 二 形参与实参的具体使用 2.1 位置参数 2.2 关键字参数 2.3 默认参数 2 ...

  5. Python全局解释器锁(GIL)

    目录 1.引言 2.GIL存在的背景 3.GIL主要工作原理 4.Python 线程安全问题 5.可以如何绕过 GIL? 6.延伸阅读 1.引言 我们来看下Python 多线程另一个很重要的话题--G ...

  6. 【Python核心】全局解释器锁GIL

    Python多线程另一个很重要的话题--GIL(Global Interpreter Lock,即全局解释器锁)鲜有人知,甚至连很多Python老司机都觉得GIL就是一个谜 一.一个不解之谜 耳听为虚 ...

  7. python中的cell函数_python基础-函数

    函数的基本使用 函数的参数详解 名称空间与作用域 闭包函数 装饰器 2020.9.11 小白学习,如有错误欢迎指点 参考自egon大佬Python快速入门神器​www.zhihu.com 函数 使用函 ...

  8. GPU 机器学习开箱即用

    作者 | 寒蝉 阿里云操作系统团队 导读:本次课程为您介绍如何在 Serverless Kubernetes 集群中使用 GPU 加速机器学习任务的执行.本文分为四个部分,第一部分是 ECI GPU ...

  9. 解释为脑瘫的那张图_Python GIL全局解释器锁详解(深度剖析)

    通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL.GIL,中文译为全局解释器锁.在讲解 GI ...

  10. 如何使用 ChatGPT (人工智能聊天机器人) 运行 Docker 容器

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 最近一款新的聊天 AI 被网友们玩疯了. 它可以直接生成代码.可以给你的代码 debug 以及提出优化... 可以 ...

最新文章

  1. Xilinx® 7 series FPGAs CLBs专题介绍(一)
  2. struts解决form提交的中文参数乱码问题
  3. 在一起 10 年了,这封信你一定要收下
  4. 积木赛尔号机器人_【金福利】8月2日赛尔号大电影7:疯狂机器城会员充值动电影票!...
  5. Nacos源码主动健康检测
  6. Vue2.x 踩坑与总结
  7. java23中设计模式——结构模式——Flyweight(享元)
  8. 關於@Override
  9. 美团java研发岗二面:java静态方法存储在哪个区
  10. notepad++ 偶数行_C ++程序查找前N个偶数的立方和
  11. bolt界面缺失dll问题
  12. php和会计,财务跟会计有什么区别
  13. 查询系统是使用 MBR 还是 GPT 分区 (Windows 和 Linux)
  14. 【tool】构造朴实的测试用例
  15. 单片机炫彩灯实训报告_单片机实验报告一-流水灯实验
  16. js页面刷新事件 ,Javascript刷新页面的几种方法
  17. githut配置完ssh后,Host key verification failed.
  18. mac 访问局域网服务器地址
  19. 2020美亚杯个人赛
  20. 6号团队-团队任务5:项目总结会

热门文章

  1. HanLP分词+用户自定义词典
  2. XBOX360更新游戏封皮(FSD自制系统)
  3. 【CTF】DDoS教程
  4. 世界第一辐轮王土拨鼠6453万美国德国碳纤维自行车品牌排行榜
  5. 报童问题求解最大利润_SVD求解ICP问题
  6. 关于百度快照更新及与权重是否有关联的百度官方答复
  7. X200显卡驱动 花屏问题 解决方法
  8. 使用Go爬豆瓣电影Top250 并写入数据库
  9. (转)什么是产品经理
  10. 网易邮箱回应“账号遭公开叫卖”:不涉及用户敏感信息 已报案