Python 为什么需要使用__name__=='__main__'
2013-12-18 22:29
519 查看
每个模块都有自己的__name__属性,但__name__的值是会变化的,与__doc__不一样。所以可以利用这一点来进行一些操作:
[plain] view
plaincopy
如果某模块被import,则该模块的__name__为这个模块的名字
如果某模块被直接运行,则其__name__为'__main__'
在每一个模块中,都可以使用如下格式来放置需要运行的代码,相当于C中的main()函数:
[python] view
plaincopy
if __name__=='__main__':
#whatever you want to run.
由于Python中将没有缩进的代码均视为需要执行的,所以,当某模块被import 时,这个模块中的这些代码也会被执行一次,而这种结果往往并不是想要看到的。这时,如果使用上面这种结构,通过判断模块当前的__name__值,则可以有效避免这种情况的发生。
同时,可以利用这一特性,对模块的测试写一个专门test()函数,然后将test()放在if语句中,便于测试。因为只有当模块被执行时才会执行if语句,进而执行test()函数,在被import时,不会产生干扰。
所以,建议将每个模块中需要执行的代码均放在这个if模块中。
[plain] view
plaincopy
如果某模块被import,则该模块的__name__为这个模块的名字
如果某模块被直接运行,则其__name__为'__main__'
在每一个模块中,都可以使用如下格式来放置需要运行的代码,相当于C中的main()函数:
[python] view
plaincopy
if __name__=='__main__':
#whatever you want to run.
由于Python中将没有缩进的代码均视为需要执行的,所以,当某模块被import 时,这个模块中的这些代码也会被执行一次,而这种结果往往并不是想要看到的。这时,如果使用上面这种结构,通过判断模块当前的__name__值,则可以有效避免这种情况的发生。
同时,可以利用这一特性,对模块的测试写一个专门test()函数,然后将test()放在if语句中,便于测试。因为只有当模块被执行时才会执行if语句,进而执行test()函数,在被import时,不会产生干扰。
所以,建议将每个模块中需要执行的代码均放在这个if模块中。
相关文章推荐
- python文件中的__name__=='__main__'的使用及调用其他py文件中的函数方法
- Python 关于 name main的使用 if __name__ == '__main__':
- Python学习笔记--为什么需要使用__name__=='__main__'
- 理解Python中的if __name__=='__main__'
- python中if __name__ == '__main__': 的解析
- python中if __name__ == '__main__': 的解析
- Python中if __name__ == '__main__':作用
- python中if __name__ == '__main__': 的解析
- python __name__=='__main__'用法
- python中if __name = '__main__',#!/usr/bin/python 解析
- 【Python学习笔记】关于if __name__ == '__main__'
- python中if __name__ == '__main__': 的解析
- python中 if __name__ == '__main__': 的理解
- 【整理】python 中 self, init, __ ,if __name__ == '__main__'
- python中if __name__ == '__main__': 的解析
- python中if __name__ == '__main__': 的解析
- python中if __name__ == '__main__': 的解析
- python中if __name__ == '__main__': 的解析
- python中if __name__ == '__main__'的作用
- Python中关于模块的 '__name__' 变量的使用