`

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的解释

    Python中_name==_main的详细解释,以及其区别。希望对大家有帮助

    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__”: 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是: 1.python文件的后缀为.py; 2.....

    python __main__

    浅析python 中__name__ = '__main__' 的作用

    python— if __name __ == ‘__main __’

    C++跟__name__和python都没什么联系,不过C++有一个程序入口叫”int main(){}”还是”void main(void)”来着,都行。(反正我试了) #include using namespace std; int main(){ cout << "hello world!" <&lt...

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

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

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

    今天小编就为大家分享一篇关于正确理解Python中if __name__ == '__main__' ,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

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

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

    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()

    浅析Python __name__ 是什么

    首先对于用双下划线开头且结尾的变量,在 Python 中被称为内置变量,除了 __name__,我们常见的还有 __init__,__dict__ 等等.那么有多少内置变量呢?我们可以通过下面在交互界面输入下面的命令,查看 Python 全部...

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

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

    python__name__原理及用法详解

    1、python中__name__是什么意思? 很多python的初学者可能都会遇到一个问题:__name__是什么意思? 在刚开始学习python的时候,我们总会看到这样一句代码: if __name__ == “__main__”: 一开始我以为这句代码的...

    python将图片进行边缘检测和轮廓提取进行turtle绘画

    1. 你需要安装opencv,在cmd中输入:**pip3 install opencv-python** 2. 要使用需要将图片放置在和py文件同一个文件夹下,接着修改下面的pic后的参数为图片名字。 ``` if __name__ == "__main__": pic = ...

    《Python程序设计与算法基础教程(第二版)》第五章序列数据类型上机实践.pdf

    name__ == '__main__': s = [1, 8, 5, 1, 2, 2, 1, 10] l = list() for i in s: if i not in l: l.append(i) print("原列表:", s) print("删掉重复元素后的列表:", l) 4、编写程序,求列表s=[9,7,8,3,2,1,55,6]中...

    Python进程Process模块-Python零基础入门教程.pdf

    ⼀个进程 Process 可以包含多个⼦进程,启 动⼀个进程的时候会⾃动创建⼀个线程,进程⾥的第⼀个线程就是主线程(即Python __name__ == '__main__'); ⼆.Python 进程 Process 模块 ⼆.Python 进程 Process 模块 ...

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

    Python中的模块(.py文件)在创建之初会自动加载一些内建变量,__name__就是其中之一。Python模块中通常会定义很多变量和函数,这些变量和函数相当于模块中的一个功能,模块被导入到别的文件中,可以调用这些变量和...

    (python)CVOA-LSTM新冠病毒优化算法来优化LSTM

    if __name__ == '__main__': # Load the dataset data, scaler = load_data(path_to_data="/Users/josftm/Documents/02_Investigacion/datasets/Demanda_Limpio_antiguo/demanda_limpio.csv", useNormalization=...

Global site tag (gtag.js) - Google Analytics