通俗的理解__name__ ="__main__"的意思就是:当.py文件被直接运行时,if __name__ = "__main__"之下的代码快将被运行;当.py以模块的形式被导入时,if __name__ = "__main__"之下的代码将不被运行

程序入口

  对于很多编程语言来说,程序都会有一个入口,python属于脚本语言,不像编译型语言那样先将程序编译称二进制再运行,而是动态的逐行运行。也就是从脚本的第一行开始运行没有统一的入口。一个python的源码除了可以直接运行外,还可以做成模块被其他.py文件导入。

代码实例:

现在有以下一个源码:number.py

1 p = 2
2 def main:
3 print("p = ",p)
4
5 main()
6
7 运行结果:p = 2

当我们将此源码作为模块进行导入时

 1 from number import p
2 def func(numbers):
3 return numbers *(p ** 2)
4 def main:
5 print("number",funs(2))
6
7 main()
8 #运行结果:
9 p = 2
10 number8

现在我们对number.py进行修改,添加if __name__ = "__main__"

1 p = 2
2 def main:
3 print("p = ",p)
4 if __name__ = "__main__":
5 main()

此时当number.py被作为模块进行导入时,if __name__ = "__main__"后面的语句将不会被执行

if __name__ = "__main__"就相当于一个程序入口,也可以理解为是一个编程习惯吧

Python中if __name__ = "__main__"的理解的更多相关文章

  1. Python中if __name__ == "__main__": 的理解

    1.在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在pytho ...

  2. python 中if __name__ = '__main__' 的作用

    python 中if __name__ = '__main__' 的作用 前言 首先我们要知道在python里面万物皆对象,模块也是对象,并且所有的模块都有一个内置属性 __name__. 一个模块的 ...

  3. FAQ: Python中if __name__ == '__main__':作用

    #hello.pydef sayHello(): str="hello" print(str); if __name__ == "__main__": prin ...

  4. Python中if __name__ == '__main__':作用

    #hello.pydef sayHello(): str="hello" print(str); if__name__=="__main__": print ( ...

  5. python中if __name__ == '__main__': 的解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ ==  '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一 ...

  6. python中if __name__ == '__main__'

    python 中__name__ = '__main__' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: “Make a script both importable and execut ...

  7. python基础之python中if __name__ == '__main__': 的解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...

  8. python中if __name__ == '__main__': 解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ ==  '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一 ...

  9. Python常见经典 python中if __name__ == '__main__': 的解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...

随机推荐

  1. HDU - 4455 Substrings(非原创)

    XXX has an array of length n. XXX wants to know that, for a given w, what is the sum of the distinct ...

  2. 2017CCCC决赛 L1-3. 阅览室

    L1-3 阅览室(20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过 ...

  3. mysql(二)--mysql索引剖析

    1.1. 索引是什么 1.1.1.索引图解 维基百科对数据库索引的定义: 数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询.更新数据库表中数据. 怎么理解这个定义呢?  首 ...

  4. HDU 4649 Professor Tian(概率DP)题解

    题意:一个表达式,n + 1个数,n个操作,每个操作Oi和数Ai+1对应,给出每个操作Oi和数Ai+1消失的概率,给出最后表达式值得期望.只有| , ^,&三个位操作 思路:显然位操作只对当前 ...

  5. event duplication bind bug & h5 dataset flag solution

    event duplication bind bug & h5 dataset flag solution https://codepen.io/xgqfrms/full/PaRBEy/ OK ...

  6. Angular 2020

    Angular 2020 https://angular.io/start https://angular.io/guide/browser-support "@angular/core&q ...

  7. local JSON file loader in js

    local JSON file loader in js "use strict"; /** * * @author xgqfrms * @license MIT * @copyr ...

  8. free Google translator for the personal website

    free Google translator for the personal website https://html5.xgqfrms.xyz/

  9. git merge all in one

    git merge all in one you can follow below steps 1. merge origin/master branch to feature branch # st ...

  10. vueJS+ES6开发移动端APP实战项目笔记

    一.什么是MVVM框架 MV*包括MVC.MVP.MVVM MVVM框架由Model.View.ViewModel构成. Model指的是数据,在前端对应的是JavaScript对象. View指的是 ...