美文网首页
Python程序中:“if __name__ == '_

Python程序中:“if __name__ == '_

作者: 彼岸的渔夫 | 来源:发表于2018-04-27 21:45 被阅读51次

    人生苦短,我用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

    总结:

    1. 如果是直接执行某个.py文件的时候,该文件中那么__name__ == '__main__'Trueif条件下的代码块将被执行。
      这个功能可以用来调试代码,将测试代码块放在if条件下
    2. 如果是从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是这个.py文件的名字而不是__main__if条件下的代码块将不会被执行。

    相关文章

      网友评论

          本文标题:Python程序中:“if __name__ == '_

          本文链接:https://www.haomeiwen.com/subject/bpwilftx.html