人生苦短,我用Python
环境:
Windows 10 64-bit, python == 3.6.4 , PyCharm CE == 2018.1
声明:学习资源均来自于网络,来源比较多,均不给出链接,这里是自己学习笔记汇总,每篇内容会随着学习的深入进行更新
在很多Python程序的最后部分,经常会出现if __name__ == '__main__':这样的判断语句,并且还会执行一些代码:例如,
#module.py
def main():
print('we are in %s' % __name__)
if __name__ == '__main__':
main()
那么,这条语句的作用是什么呢?
“Make a script both importable and executable”
意思就是说,让你写的脚本既可以作为模块导入到别的模块中用,也可以自己作为.py文件执行。
在上面的例子中,
- 如果把
module.py作为.py文件执行本身,则if __name__ == '__main__':的条件为True,调用main()函数,执行print语句,打印结果为:
we are in __main__
此时,当前执行的文件是主模块,属性__name__的值就是__main__;
- 如果,把
module.py文件作为模块引入到另一个模块中使用时,并且调用一次main()函数,那么执行结果为:
we are in module
此时的属性__name__的值就是被引入的模块名称module。
总结:
- 如果是直接执行某个
.py文件的时候,该文件中那么__name__ == '__main__'是True,if条件下的代码块将被执行。
这个功能可以用来调试代码,将测试代码块放在if条件下 - 如果是从另外一个
.py文件通过import导入该文件的时候,这时__name__的值就是这个.py文件的名字而不是__main__,if条件下的代码块将不会被执行。










网友评论