如果你经常使用的是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. IBM的医疗AI为何失败
  2. nginx的启动初始化过程(一)
  3. 成功解决AttributeError: 'NoneType' object has no attribute '__array_interface__'
  4. CV之IG:基于CNN网络架构+ResNet网络进行DIY图像生成网络
  5. rust房子 如何拆除_“一户多宅”将陆续清查!违规如何处理?
  6. java dom获取属性值_java – 获取dom节点的属性
  7. InstallShield 2011正式发布
  8. andorid平台游戏内存修改器的开发思路
  9. 为什么java IO类不用基于继承的设计方案?
  10. SPSS数据处理-数据整理
  11. 计算机毕业设计java+jsp幼儿园信息网站(源码+系统+mysql数据库+Lw文档)
  12. matlab中的semilogy,MATLAB 函数Semilogy()
  13. 二层交换机实现不同vlan通信
  14. java_vinson_02:jdk下载安装
  15. 软件的生命周期SDLC
  16. Xdebug中文文档-安装
  17. android微信点赞ui,Android中使用PopupWindow 仿微信点赞和评论弹出
  18. 数据安全运营体系建设
  19. list object has no attribute ZScan_书香家庭NO.31 | 成长路上飘书香
  20. 线性代数几种特殊类型行列式_及其计算

热门文章

  1. 2022R2移动式压力容器充装考试试题模拟考试平台操作
  2. kindle3注册地址
  3. 运用 Facebook 与 SaleSmartly(ss客服)打造最佳客户体验
  4. 被BAT疯抢的工程师,都是怎么拿到50万年薪Offer的?
  5. 亿图图示 Edraw Max 9.4 中文特别版 Mac 专业的图形图表绘制工具
  6. 2021-11-06 pc桌面屏幕熄屏软件
  7. MVC 基于 AuthorizeAttribute 实现的登陆权限控制
  8. Intellij Idea flutter launch emulator Manager Unable to locate adb
  9. 云服务器部署stable diffusion webui
  10. 博士申请 | 香港中文大学(深圳)李彤欣老师课题组招收全奖博士/博后