python-从哪里开始执行?
如果你经常使用的是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-从哪里开始执行?相关推荐
- Python中的GIL和深浅拷贝
Python中的GIL和深浅拷贝 文章目录 Python中的GIL和深浅拷贝 一.GIL全局解释器锁 1.引入 2.GIL 3.Python GIL底层实现原理 4.计算密集型和IO密集型 5.解决G ...
- python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)
通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...
- python GIL 全局解释器锁详解
Python多线程另一个很重要的话题--GIL(Global Interpreter Lock,即全局解释器锁)鲜有人知,甚至连很多Python老司机都觉得GIL就是一个谜 一.一个不解之谜 耳听为虚 ...
- Python基础知识——函数的基本使用、函数的参数、名称空间与作用域、函数对象与闭包、 装饰器、迭代器、生成器与yield、函数递归、面向过程与函数式(map、reduce、filter)
文章目录 1 函数的基本使用 一 引入 二 定义函数 三 调用函数与函数返回值 2 函数的参数 一 形参与实参介绍 二 形参与实参的具体使用 2.1 位置参数 2.2 关键字参数 2.3 默认参数 2 ...
- Python全局解释器锁(GIL)
目录 1.引言 2.GIL存在的背景 3.GIL主要工作原理 4.Python 线程安全问题 5.可以如何绕过 GIL? 6.延伸阅读 1.引言 我们来看下Python 多线程另一个很重要的话题--G ...
- 【Python核心】全局解释器锁GIL
Python多线程另一个很重要的话题--GIL(Global Interpreter Lock,即全局解释器锁)鲜有人知,甚至连很多Python老司机都觉得GIL就是一个谜 一.一个不解之谜 耳听为虚 ...
- python中的cell函数_python基础-函数
函数的基本使用 函数的参数详解 名称空间与作用域 闭包函数 装饰器 2020.9.11 小白学习,如有错误欢迎指点 参考自egon大佬Python快速入门神器www.zhihu.com 函数 使用函 ...
- GPU 机器学习开箱即用
作者 | 寒蝉 阿里云操作系统团队 导读:本次课程为您介绍如何在 Serverless Kubernetes 集群中使用 GPU 加速机器学习任务的执行.本文分为四个部分,第一部分是 ECI GPU ...
- 解释为脑瘫的那张图_Python GIL全局解释器锁详解(深度剖析)
通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL.GIL,中文译为全局解释器锁.在讲解 GI ...
- 如何使用 ChatGPT (人工智能聊天机器人) 运行 Docker 容器
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 最近一款新的聊天 AI 被网友们玩疯了. 它可以直接生成代码.可以给你的代码 debug 以及提出优化... 可以 ...
最新文章
- IBM的医疗AI为何失败
- nginx的启动初始化过程(一)
- 成功解决AttributeError: 'NoneType' object has no attribute '__array_interface__'
- CV之IG:基于CNN网络架构+ResNet网络进行DIY图像生成网络
- rust房子 如何拆除_“一户多宅”将陆续清查!违规如何处理?
- java dom获取属性值_java – 获取dom节点的属性
- InstallShield 2011正式发布
- andorid平台游戏内存修改器的开发思路
- 为什么java IO类不用基于继承的设计方案?
- SPSS数据处理-数据整理
- 计算机毕业设计java+jsp幼儿园信息网站(源码+系统+mysql数据库+Lw文档)
- matlab中的semilogy,MATLAB 函数Semilogy()
- 二层交换机实现不同vlan通信
- java_vinson_02:jdk下载安装
- 软件的生命周期SDLC
- Xdebug中文文档-安装
- android微信点赞ui,Android中使用PopupWindow 仿微信点赞和评论弹出
- 数据安全运营体系建设
- list object has no attribute ZScan_书香家庭NO.31 | 成长路上飘书香
- 线性代数几种特殊类型行列式_及其计算
热门文章
- 2022R2移动式压力容器充装考试试题模拟考试平台操作
- kindle3注册地址
- 运用 Facebook 与 SaleSmartly(ss客服)打造最佳客户体验
- 被BAT疯抢的工程师,都是怎么拿到50万年薪Offer的?
- 亿图图示 Edraw Max 9.4 中文特别版 Mac 专业的图形图表绘制工具
- 2021-11-06 pc桌面屏幕熄屏软件
- MVC 基于 AuthorizeAttribute 实现的登陆权限控制
- Intellij Idea flutter launch emulator Manager Unable to locate adb
- 云服务器部署stable diffusion webui
- 博士申请 | 香港中文大学(深圳)李彤欣老师课题组招收全奖博士/博后