正确理解Python中if __name__ == '__main__'

在Python,我们经常会编写

if __name__ == '__main__' 

这么一段代码,这段代码该怎么来理解?

这段代码的功能理解如下:

一个python的文件有两种使用的方法:

  • 作用一,直接作为脚本执行。
  • 作用二,import到其他的python脚本中被调用(模块重用)执行。

if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

运行原理

每个python模块(python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。所以当模块被直接执行时,__name__ == '__main__'结果为真;而当模块被import到其他模块中时,__name__ == '__main__'结果为假,就是不调用对应的方法。

简而言之就是:__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。当模块被直接运行时,代码将被运行,当模块是被导入时,代码不被运行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • python__name__原理及用法详解

    1.python中__name__是什么意思? 很多python的初学者可能都会遇到一个问题:__name__是什么意思? 在刚开始学习python的时候,我们总会看到这样一句代码: if __name__ == "__main__": 一开始我以为这句代码的意思和C语言中的main函数一样,程序从这里开始执行,但后来经过查询资料发现,两者并不完全相同,这里做一些解释: __name__是一个变量,前后加了双下划线是因为这是系统定义的名字(python中系统变量都是双下划綫开头结尾),

  • 解决python "No module named pip"的问题

    python 升级后导致不能使用原来的pip命令 windows平台 cmd中敲命令:python -m ensurepip 得到pip的setuptools 然后就可以用:easy_install pip 下载相应版本的pip,最后就可以愉快的用pip命令了! 以上这篇解决python "No module named pip"的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python os.rename() 重命名目录和文件的示例

    概述 os.rename() 方法用于重命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError. 语法 rename()方法语法格式如下: os.rename(src, dst) 参数 src – 要修改的目录名 dst – 修改后的目录名 返回值 该方法没有返回值 该方法 可以重命名 文件 和目录, 如果 src参数 对应文件或目录,不存在,会保错, 如果 dst 参数 对应文件或目录,已经存在,也会报错 实验方法: 在当前目录下,新建一个目录,名称为:te

  • Python 获取主机ip与hostname的方法

    ->基础环境 Linux:ubuntu 16.04 Python : 2.7 ->修改hostname 1:$sudo hostname 2tong-slavetwo 2:$sudo vi /etc/hostname 2tong-slavetwo 3:$sudo vi /etc/hosts 127.0.0.1 localhost 2tong-slavetwo 127.0.1.1 2tong-slavetwo ->Python 环境下输出ip hostname >>>im

  • 详解python中__name__的意义以及作用

    首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行: test.py def HaveFun(): if __name__ == '__main__': print('I am in my domain,my name is %s' % __name__) else: print('Someone else calls me!,my name is %s' % __name__) HaveFun() 运行test.py结果: I am in my domain,my

  • python下setuptools的安装详解及No module named setuptools的解决方法

    前言 python下的setuptools带有一个easy_install的工具,在安装python的每三方模块.工具时很有用,也很方便. 安装setuptools前先安装pip,请参考:linux下pip的安装步骤及使用详解 1. 下载: 在它的官网可以下载到安装包: https://pypi.python.org/pypi/setuptools 页面最下面的是它的安装链接,如: $wget --no-check-certificate https://pypi.python.org/pack

  • Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)

    前言 在Python中提供了json包来方便快捷的解析json字串的转换过程,但是碰到了一个比较奇怪的问题,就是不太正确的json串如何来解析? 1. 问题的提出 今天在处理一个http请求的响应json之时,基于python进行解析,碰到了如下错误: Traceback (most recent call last): File "<ipython-input-16-bff463ed9408>", line 1, in <module> json.loads(

  • 解决Python找不到ssl模块问题 No module named _ssl的方法

    python安装完毕后,提示找不到ssl模块: [www@pythontab.com ~]$ python Python 2.7.15 (default, Oct 23 2018, 18:08:43) [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2 Type "help", "copyright", "credits" or "license" for more inform

  • 正确理解Python中if __name__ == '__main__'

    在Python,我们经常会编写 if __name__ == '__main__' 这么一段代码,这段代码该怎么来理解? 这段代码的功能理解如下: 一个python的文件有两种使用的方法: 作用一,直接作为脚本执行. 作用二,import到其他的python脚本中被调用(模块重用)执行. if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执

  • Python中if __name__==‘__main__‘用法详情

    前言: 我们先定义一个test01.py的文件. test01.py中代码如下所示: def step(): print(__name__) print('step1 买菜' 'step2 洗菜' 'step3 切菜' 'step4 炒菜') if __name__=='__main__': print('准备制作菜品') step() print('制作完成') 输出结果: 注意:这段代码中输出的第一句. print(__name__) if __name__=='__main__'是一个判断

  • Python中if __name__ == '__main__'作用解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模块的 __name__ 的值取决于您如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名.但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__". //////

  • Python中if __name__ == '__main__'作用解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模块的 __name__ 的值取决于您如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名.但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__". //////

  • Python中if __name__ == "__main__"详细解释

    想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是: 1.python文件的后缀为.py: 2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入(比如360安全卫士,就是依靠一个个功能模块来实现的,好比360安全卫士本身框架是一个桌面,而上面的图标就是快捷方式,这些快捷方式所指向的就是这一个个功能模块) 3.在py

  • Python中if __name__ == "__main__"详细解释

    想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是: 1.python文件的后缀为.py: 2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入(比如360安全卫士,就是依靠一个个功能模块来实现的,好比360安全卫士本身框架是一个桌面,而上面的图标就是快捷方式,这些快捷方式所指向的就是这一个个功能模块) 3.在py

  • 正确理解python中的关键字“with”与上下文管理器

    前言 如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 "with" 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下文管理器. 对于系统资源如文件.数据库连接.socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(断开)该资源. 比如 Python 程序打开一个文件,往文件中写内容,写完之后,就要关闭该文件,否则会出现什么情况呢?极端情况下会出现 "Too many open files" 的错误,

  • 聊聊Python代码中if __name__ == ‘__main__‘的作用是什么

    目录 Python中if__name__==‘__main__‘作用 补充:if__name__=='__main__':的运行原理 总结 Python中if __name__ == ‘__main__‘作用 要搞清楚这个问题,要知道以py作为后缀的Python代码文件,有两种使用方式,第一种方式是直接运行,另一种方式是作为模块被别的py文件导入. 当采用第一种方式直接运行自身时,__name__的值为__main__: 当采用第二种方式被别的模块导入时,其__name__的值为其文件名(通常也

  • 深入理解python中的闭包和装饰器

    python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). 以下说明主要针对 python2.7,其他版本可能存在差异. 也许直接看定义并不太能明白,下面我们先来看一下什么叫做内部函数: def wai_hanshu(canshu_1): def nei_hanshu(canshu_2): # 我在函数内部有定义了一个函数 return canshu_1*canshu_2 return

  • 如何正确理解python装饰器

    一.闭包 要想了解装饰器,首先要了解一个概念,闭包.什么是闭包,一句话说就是,在函数中再嵌套一个函数,并且引用外部函数的变量,这就是一个闭包了.光说没有概念,直接上一个例子. def outer(x): def inner(y): return x + y return inner print(outer(6)(5)) ----------------------------- >>>11 如代码所示,在outer函数内,又定义了一个inner函数,并且inner函数又引用了外部函数ou

随机推荐