python中 __name__及__main()__的妙处

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

if __name__ == "__main__":    print ('This is main of module "hello.py"')    sayHello()

python作为一种脚本语言,我们用python写的各个module都可以包含以上那么一个累死c中的main函数,只不过python中的这种__main__与c中有一些区别,主要体现在:

1、当单独执行该module时,比如单独执行以上hello.py: python hello.py,则输出

This is main of module "hello.py"
hello

可以理解为"if __name__=="__main__":" 这一句与c中的main()函数所表述的是一致的,即作为入口;

2、当该module被其它module 引入使用时,其中的"if __name__=="__main__":"所表示的Block不会被执行,这是因为此时module被其它module引用时,其__name__的 值将发生变化,__name__的值将会是module的名字。比如在python shell中import hello后,查看hello.__name__:

>>> import hello
>>> hello.__name__
'hello'
>>>

3、因此,在python中,当一个module作为整体被执行时,moduel.__name__的值将是"__main__";而当一个 module被其它module引用时,module.__name__将是module自己的名字,当然一个module被其它module引用时,其 本身并不需要一个可执行的入口main了。可以说python中的这种用法很灵活啊。

转自:http://www.cnblogs.com/liqilei/archive/2010/08/11/1797715.html

转载于:https://www.cnblogs.com/handsome1013/p/9269200.html

python中 __name__及__main()__的妙处02相关推荐

  1. python中 __name__及__main()__的妙处

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

  2. python中type为什么有main_python中 __name__及__main()__的妙处

    #hello.py def sayHello(): str="hello" print(str); if __name__ == "__main__": pri ...

  3. python def main好处_python中 __name__及__main()__的妙处

    #hello.py def sayHello(): str="hello" print(str); if __name__ == "__main__": pri ...

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

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

  5. python 中__name__ = '__main__' 的作用

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

  6. python中main的作用_浅析python 中__name__ = '__main__' 的作用

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

  7. python学习笔记26(python中__name__的使用)

    python学习笔记26(python中__name__的使用) 在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以imp ...

  8. Python中的以下划线“__“开头的方法——魔术方法使用指向

    什么是魔术方法? 在Python中,所有以双下划线__包起来的方法,统称为Magic Method(魔术方法),它是一种的特殊方法,普通方法需要调用,而魔术方法不需要显示调用就可以执行. 魔术方法在类 ...

  9. 轻松理解python中的_和__区别和含义

    Python中 _ 和 __ 的含义 _ 的含义 在python的类中,没有真正的私有化,不管是方法还是属性,为了编程的需要,约定加了下划线 _ 的属性和方法不属于API,不应该在类的外面访问,也不会 ...

最新文章

  1. vue-cli工程目录结构及相关文件说明
  2. 在腾讯云上安装mysql遇到的问题
  3. 逻辑漏洞小结之SRC篇
  4. 【Canvas】如何用Canvas绘制折线图
  5. JavaWeb笔记(七)FilterListener
  6. 东南亚本地商ERP仓储系统怎么样?
  7. android仿IOS,滑动隐藏底部ScrollView
  8. 管理感悟:如何看待培训
  9. 【工具】动软代码生成器连接数据库
  10. Qt学习之资源文件(qrc)的添加以及使用
  11. egg.js+vue前后端分离项目,后端如何使用set-Cookie为前端设置cookie
  12. tensorflow 版本列表_TensorFlow 版本兼容性
  13. java 查询条件的封装_java封装前端查询条件通用版|chu
  14. 七天引爆社交新零售(助你提高十倍业绩)——前言
  15. mac控制台关闭指定端口
  16. 用python进行数据分析举例说明_《利用python进行数据分析》读书笔记 --第一、二章 准备与例子...
  17. 【译】Sobel 算子文档
  18. RealView MDK的指定位置
  19. 基于PHP+小程序(MINA框架)+Mysql数据库的新生自助报到小程序系统设计与实现
  20. 阿里云后台服务器IIS安装与配置

热门文章

  1. mongodb学习参考博文
  2. Docker容器固定IP分配
  3. bug4 导入新工程时报 Target runtime com.genuitec.runtime.generic.jee60 is not defined
  4. script的加载方式与执行
  5. 职业生涯第二年回顾(2011.2~2012.2)
  6. windows7环境下使用pip安装MySQLdb
  7. 大数据2 Hadoop伪分布模式配置部署
  8. 分享我的学习记录 svn地址
  9. python binary lib on win/各种python库的二进制包
  10. linux中通过命令生成hex值