zoukankan      html  css  js  c++  java
  • 如何理解python中的if __name__=='main'的作用

    一. 一个浅显易懂的比喻

    我们在学习python编程时,不可避免的会遇到if __name__=='main'这样的语句,它到底有什么作用呢?

    《如何简单地理解Python中的if __name__ == '__main__'》里举了一个通俗易懂的例子:

    '''

    通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')

    if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。

    '''

    二. 用代码来验证

    在桌面上,新建一个test.py文件,写入如下代码:

    print('我喜欢学python')
    
    def func():
              print('python是一门优秀的语言')
    
    print(__name__)
    
    if __name__=='__main__':
              func()
              print('学习python让我的世界丰富多彩!')
              

    运行代码,输出结果为

    在桌面再建一个名为test_import.py的文件,只输入以下代码:

    import test

    输出结果为

    和之前test.py的运行结果相比,只输出了"我喜欢学python", if __name__=='__main__'之后的语句没有输出,还有一个区别是print(__name__)的结果,前者是__main__,后者是test

    每个python文件也就是一个模块,都包含了内置的变量__name__,对模块自身来讲,__name__就是'__main__',而当模块被import到其他模块时,这个模块的__name__就等于这个模块名test(不包含.py)。也就是说,当模块被导入时,模块的if __name__=='__main__':代码块将不会被执行

  • 相关阅读:
    [NOI 2011][BZOJ 2434] 阿狸的打字机
    列出cocos2dx运行场景所有节点信息
    png 转 eps (电脑已安装latex环境前提下)
    latex小记
    第二篇
    博客第一篇
    百度动态规划
    百度约瑟夫算环
    转~最大连续子序列求和
    Oracle学习笔记——一对多的关系关联查询时只关联查找最新的第一条数据
  • 原文地址:https://www.cnblogs.com/my_captain/p/9125702.html
Copyright © 2011-2022 走看看