• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 浅析python 中__name__ = '__main__' 的作用

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

作者:shichen2014 字体:[增加 减小] 来源:互联网

shichen2014 通过本文主要向大家介绍了python if name main,python中 name main,python name main,python中if name main,python3 if name main等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main__' 的作用,到底干嘛的?

有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。

这句话,可能一开始听的还不是很懂。下面举例说明:

先写一个模块:

#module.py
def main():
  print "we are in %s"%__name__
if __name__ == '__main__':
  main()

</div>

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

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

#anothermodle.py
from module import main
main()

</div>

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

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

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

总结一下:

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

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

</div>

您可能想查找下面的文章:

  • Python中if __name__ == '__main__'作用解析
  • Python中__name__的使用实例
  • 浅析python 中__name__ = '__main__' 的作用
  • 浅析python 中__name__ = '__main__' 的作用

相关文章

  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
  • Python3基础之list列表实例解析
  • Python正则表达式教程之一:基础篇
  • 在Mac OS上使用mod_wsgi连接Python与Apache服务器
  • 判断网页编码的方法python版
  • Python中lambda的用法及其与def的区别解析
  • 从零学Python之入门(四)运算
  • Python中操作MySQL入门实例
  • 使用Python解析JSON数据的基本方法
  • Python多维/嵌套字典数据无限遍历的实现

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 详解python3实现的web端json通信协议
    • Python底层封装实现方法详解
    • python subprocess 杀掉全部派生的子进程方法
    • Python执行时间的计算方法小结
    • 详细介绍Python中的偏函数
    • 使用python分析git log日志示例
    • 通过Python来使用七牛云存储的方法详解
    • Python监控主机是否存活并以邮件报警
    • 探究Python的Tornado框架对子域名和泛域名的支持
    • Python常用模块介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有