我的机器学习教程「美团」算法工程师带你入门机器学习  以及 「三分钟系列」数据结构与算法  已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。

欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~

对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。

如果你接触过这些语言,对于程序入口这个概念应该很好理解,C,C++都需要有一个main函数作为程序的入口,也就是程序的运行会从main函数开始。同样,Java,C#必须要有一个包含Main方法的主类,作为程序入口。
而Python则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
一个Python源码文件(.py)除了可以被直接运行外,还可以作为模块(也就是库),被其他.py文件导入。
不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),而当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行。
int main(void){ }
上面是C语言中主函数的声明,从计算机的角度来说,当编译执行此段话时,相当于告诉它:该干活了。干什么活呢?就是对于主函数内部的代码进行"操作",一般来说此时所有的函数声明,结构定义等都已被编译完成,只等main函数出现,便可以最终生成可执行文件对象。
在Python中也是一样,main函数代表了程序入口(被藏起来了)。
现在假设有一个文件c.py,里面包含了一段类定义的代码和实例化的操作,那么在看见
if __name__ == 'main':
之后,就会判断这个文件的程序入口是不是main(把Python中的程序想象成一个类,那么__name__就相当于构造函数里的__self__),换句话说,如果这个文件是正在执行的,那么它的入口必然是'main'
相反地,如果有一个文件b.py,其中调用了这个c中类的定义,那么结果将是未定义的,即无法在b中调用此类对象。

if __name__ == '__main__' 的正确理解相关推荐

  1. python 有关 if __name__ == ‘__main__‘ 的正确理解

    写此文章的初衷在于笔者碰到一道题目如下: "假设有Python程序文件a.py,其代码如下: def main():if __name__ == '__main__':print(1)els ...

  2. if __name__ == '__main__' 如何正确理解

    if __name__ == '__main__' 如何正确理解 if __name__ == '__main__' 如何正确理解 - 姚红 - 博客园 python编程中的if __name__ = ...

  3. if __name__ == '__main__' 如何正确理解?

    本文转载自:https://blog.csdn.net/zhusongziye/article/details/79505803 在大多数编排得好一点的脚本或者程序里面都有这段if __name__ ...

  4. if __name__ == __main__如何正确理解

    粗略来讲,__name__是当前模块,当模块被直接运行时模块名为__main__.这句话的意思是,当模块被直接执行时,代码将运行,当模块是被导入时,代码不被运行 例如,执行one.py 1 # fil ...

  5. Python爬虫笔记——if __name__ == ‘__main__‘ 如何正确理解和__init__和self 的解析

    Python中if name == 'main':的作用和原理 Python中if name == 'main',__init__和self 的解析

  6. Python 中的 if __name__ == __main__ 该如何理解

    Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...

  7. Python 中的 if __name__ == '__main__' 该如何理解

    程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...

  8. python中的__name__=='__main__'如何简单理解(一)

    1. 摘要: 通俗的理解_name_ == '_main_':假如你叫小明.py,在朋友眼中,你是小明(_name_ == '小明'):在你自己眼中,你是你自己(_name_ == '_main_') ...

  9. python中if __name__ == ‘__main__‘:的简单理解

    举例说明,这里有两个模块 # ni模块 print("这是1.") if __name__ == '__main__':print("这是2.")'''输出结果 ...

  10. Python 中的 if __name__ == ‘__main__‘ 该如何理解

    如何简单地理解Python中的if name == 'main' Python 中的 if name == 'main' 该如何理解

最新文章

  1. 技术11期:Atlas的概念你了解多少?
  2. 如何设计一款电商产品?
  3. 面试官:请简述一下vue-cli命令行工具,你能自己手写一个吗?
  4. DC/DC电源模块介绍
  5. 利用iframe与Response.Flush实现进度展示效果
  6. 1.2-Nginx编译安装
  7. 内置函数之sorted,filter,map
  8. 【转】逆变与协变详解
  9. 别学了!这 5 种即将消亡的编程语言
  10. 单片机数码管00 99c语言,STC89C52单片机数码管显示00~99,间隔1S程序
  11. 关于Java Web工程中web.xml文件
  12. 跨语言传输调用对象.TXT
  13. [备查]使用 SPQuery 查询 Person or Group 字段
  14. oppoa11android版本是什么,oppoa11x处理器是什么?oppoA11x配置介绍
  15. 一个可以免费下载表情包的小程序
  16. 如何恢复格式化丢失的资料?
  17. 计算机如何进行加减乘除计算—(计算机基础课十三)​​​​​​​​​​​​​​
  18. 喜讯科技——桥梁防船撞预警系统
  19. 浅谈代码规范基础调试几道面试题
  20. 华为路由器时间同步_华为NTP配置实例

热门文章

  1. React 进修之路(1)
  2. go语言strings包
  3. Django 模板标签[转]
  4. .net Entity Framework初识1
  5. libevhtp介绍与demo构建
  6. datax源代码编译安装
  7. 2.5.1 命令与参数
  8. 缓冲文件系统和非缓冲文件系统
  9. Java开发中的23种设计模式
  10. Hadoop高级培训课程大纲-开发者版