__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。我们通过一个简单的例子来理解为什么要使用该语句:

假设我们有一个C.py文件

PI = 3.14

def main():
print "PI:", PI main()

main()函数相当于最后检查一遍,运行后输出:

PI: 3.14

我们现在有一个area.py文件,用于计算圆面积,需要用到C.py文件中的PI变量

from C import PI

def calc_round_area(radius):
return PI * (radius ** 2) def main():
print "round area: ", calc_round_area(2) main()

运行area.py,输出结果

PI: 3.14
round area: 12.56

我们发现C中的main函数也被运行了,但是实际上我们只希望得到圆面积的结果,于是更改C.py文件

PI = 3.14

def main():
print "PI:", PI if __name__ == "__main__":
main()

然后运行area.py,输出如下:

round area:  12.56

这才是我们要的结果。

最新文章

  1. 实现Div拖拽
  2. 烂泥:使用nginx利用虚拟主机搭建WordPress博客
  3. SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.0
  4. 博客建议(Suggestions)
  5. java 笔记(1)-—— JVM基础,内存数据,内存释放,垃圾回收,即时编译技术JIT,高精度类型
  6. POJ 1650
  7. android菜鸟学习笔记7----android布局(二)
  8. Android 镜像地址[持续更新中]
  9. 定时器内部的this
  10. ie浏览器提交参数和其它浏览器的区别
  11. EntityFramework批量Insert
  12. W3CSchool闯关笔记(JQuery)
  13. pycharm的list中append的应用
  14. C++数论板题(弹药科技):Lengendre定理和欧拉函数
  15. Android R文件介绍
  16. 基于Eclipse搭建hadoop开发环境
  17. 基于CommonsCollections4的Gadget分析
  18. QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
  19. POJ--2570--Fiber Network【floyd+位运算】
  20. 收藏Linux命令

热门文章

  1. vuex相关(actions和mutation的异曲同工)
  2. 零基础入门学习Python(11)--列表:一个打了激素的数组(2)
  3. stark组件之添加、修改页面内容搭建(七)
  4. insert,extend
  5. form 表单onclick事件 禁止表单form提交
  6. Mybatis 处理日期格式自动转换
  7. java中检测-在运行时指定对象是否是特定类的一个实例---关键字 instanceof
  8. zset(sorted set:有序集合)数据类型【八】
  9. Linux下汇编语言学习笔记22 ---
  10. UVA 11400_ Lighting System Design