if __name__ == '__main__':的意义

这个主函数调用的语句常用,但是初学python的时候可能会有点疑惑。简言之就是,当这个python脚本被直接运行的时候,if __name__ == '__main__':以下的部分会被执行;而当该脚本以模块(module)的形式导入时,以下的代码则不会被执行。
如下例直接调用main()作对比:

  1. main()调用
    定义一个greet.py文件,内容为:
greet = 'hello'

def main():
    print('hello!')

main()

这个脚本会返回"hello!",如果在另一个文件中导入其中的greet变量:

from greet import greet

def greet2(name):
    print(greet + ', ' + name + '!')

greet2('daming')

运行会返回:
hello!
hello, daming!

可以看到导入了greet变量,但是仍然会运行main()这个函数。

  1. if __name__ == '__main__'

将greet.py修改:

greet = 'hello'

def main():
    print('hello!')

if __name__ == '_main_':
    main()

运行greet2.py,返回:
hello, daming!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容