`

python 中__name__ = '__main__' 的作用

阅读更多
出自:https://www.cnblogs.com/alan-babyblog/p/5147770.html
先写一个python文件:
#module.py
def main():
  print "we are in %s"%__name__
if __name__ == '__main__':
  main()

这个函数定义了一个main函数,我们执行一下该py文件发现结果是打印出”we are in __main__“,说明我们的if语句中的内容被执行了,调用了main()

但是如果我们从另我一个模块导入该模块,并调用一次main()函数会是怎样的结果呢?
#anothermodle.py
from module import main
main()

其执行的结果是:we are in module

但是没有显示”we are in __main__“,也就是说模块__name__ = '__main__' 下面的函数没有执行。


这样既可以让“模块”文件运行,也可以被其他模块引入,而且不会执行函数2次。这才是关键。

总结一下:
如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。


这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行!
分享到:
评论

相关推荐

    Python中_name==_main的解释

    综上所述,`__name__ == '__main__'`在Python中具有重要的作用,它不仅可以帮助开发者控制脚本的执行流程,还能够在模块化编程中提高代码的组织性和可维护性。理解并正确运用`__name__`的概念对于编写高质量的Python...

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

    在Python编程语言中,`if __name__ == '__main__'` 是一个常见的代码结构,它的作用在于控制代码的执行时机。理解这个语句的作用对于编写可复用、模块化的Python程序至关重要。以下是对这个语句的详细解释。 首先,...

    python中 if __name__ == “__main__”的作用

    开门见山地说,python中if __name__ == __main__的作用是作为程序运行的入口。(任何程序都只能有一个入口) 如果写一个独立的简单的脚本,那么我们会发现脚本是顺序执行的。似乎没有if __name__ == __main__程序也...

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

    ### 正确理解Python中的`if __name__ == '__main__'` 在深入探讨`if __name__ == '__main__'`之前,我们先来了解一下这个结构的基本含义及其背后的逻辑。 #### `__name__` 变量 在Python中,每一个模块都有一个...

    python __main__

    ### Python 中 `__name__ == '__main__'` 的作用详解 在 Python 编程过程中,经常会在脚本中见到 `if __name__ == '__main__':` 这样的代码块。这一段代码看似简单,但其实蕴含着重要的功能与用途。本文将详细解释...

    Python中if __name__ == “__main__”详细解释

    想必很多初次接触python都会见到这样一个语句,if __name__ == “__main__”: 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是: 1.python文件的后缀为.py; 2.....

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

    本文将详细介绍Python中__name__的意义及其作用,并通过示例代码进行深入分析,以便读者能够更好地理解并应用这个概念。 首先,__name__是一个内置的系统变量,它用于指代模块的名称。在Python中,每个模块都可以被...

    浅析python 中__name__ = ‘__main__’ 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \’__main__\’ 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ‘__main__’ 的作用,到底干嘛的? 有句话经典的概括了...

    python— if __name __ == ‘__main __’

    理解`if __name__ == '__main__'` 的作用对编写可重用的Python代码至关重要,因为它允许你在模块中定义函数和类,然后在需要的地方导入和使用,同时保证某些特定的初始化代码只在主程序中执行。这种设计模式在编写...

    Python中if __name__ == ‘__main__’作用解析

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

    code_python故障诊断_python故障_fault_故障诊断_python_

    在Python编程过程中,故障诊断是不可或缺的一个环节,它关乎到代码的健壮性和问题的快速定位。本资源集合提供了一些基于Python的故障诊断程序,旨在帮助故障诊断学者深入理解和实践这一领域。以下将详细探讨Python...

    Python中__name__的使用实例

    2. 如果模块是被直接执行,__name__的值为’__main__’ Py1.py 复制代码 代码如下: #!/usr/bin/env python def test():  print ‘__name__ = ‘,__name__ if __name__ == ‘__main__’:  test() Py2.py 复制代码 ...

    Python中对错误NameError: name ‘xxx’ is not defined进行总结

    最近在使用python过重遇到这个问题,NameError: name 'xxx' is not defined,在学习python或者在使用python的过程中这个问题大家肯定都遇到过,在这里我就这个问题总结以下几种情况: 错误NameError: name ‘xxx’ ...

    weblfasr_python3_demo.py

    # 输入讯飞开放平台的appid,secret_key和待转写的文件路径 if __name__ == '__main__': api = RequestApi(appid="", secret_key="", upload_file_path=r"") api.all_api_request()

    _multiprocessing_python多任务尝试_python_

    在Python编程中,多任务处理是一个重要的概念,它允许程序同时执行多个不同的任务,从而提高效率和并发性。本文将详细探讨如何使用Python的`_multiprocessing`模块来实现多任务处理,以及在这个过程中可能遇到的一些...

    Python关于__name__属性的含义和作用详解

    ### Python中的`__name__`属性详解 #### 一、`__name__`属性的基本概念 在Python编程语言中,每个模块(即`.py`文件)都有一个内建的属性`__name__`,它是用来标识该模块名字的一个特殊属性。`__name__`属性在模块...

    shell脚本中执行python脚本并接收其返回值的例子

    1.在shell脚本执行python脚本时,需要通过python脚本的返回值来判断后面程序要执行的命令 例:有两个py程序 hello.py 代码如下: def main():  print “Hello” if __name__==’__main__’:  main() world.py def ...

    python中类的输出或类的实例输出为<__main__类名 object at xxxx>这种形式的原因

    在Python编程语言中,当你创建一个类并实例化它,然后尝试打印这个实例时,你会看到类似`<__main__.ClassName object at 0x7f3456789abc>`这样的输出。这种格式的出现是由于Python的内置机制决定的,涉及到类的表示...

    python_GUI.rar_gui python_python gui_python3 gui

    if __name__ == '__main__': MyApp().run() ``` 压缩包中的“图形界面GUI.py”很可能是实现了一个简单的GUI示例,可能使用了上述的一种或多种库。你可以解压并运行这个文件来查看具体实现。通过学习和实践这些GUI...

    浅析Python __name__ 是什么

    在Python脚本的顶级代码块(即不在任何函数或类定义内)中,如果`__name__`的值等于`'__main__'`,那么意味着这个脚本是直接执行的,而不是被其他模块导入的。这是因为在直接执行脚本时,Python将该脚本的`__name__`...

Global site tag (gtag.js) - Google Analytics