zoukankan      html  css  js  c++  java
  • 浅谈if __name__='__main__'

     if __name__ == '__main__'(四个下划线,每个下划线都是由两个下划线组成)

     首先由几行代码来说明:

     新建一个pi.py的代码

    PI=3.14
    def main():
    	print("PI:",PI)
    main()

        另外新建一个area.py

    from pi import PI  #从pi模块中引入PI函数
    
    def calc_round_area(radius):
    	return PI*(radius ** 2)
    
    def main():
    print("round area:",calc_round_area(2))
    main()                                                                                                                                          
    

      运行结果如下

    发现一个问题执行area.py程序时,同时也执行了pi.py中的main()函数,这显然不是我们想要的结果,如果添加if __name__ ==' __main__'代码,执行结果如下:

    PI=3.14
    def main():
    	print("PI:",PI)
    
    if __name__ == "__main__":
    	main()
    

    执行area.py,只执行area.py中的main()函数,这才是我们想要的结果。

    if __name__ == '__main__'其实代表Python程序的模拟入口,由于不同模块之间相互引用,不同模块可能都有这样的定义,但是程序入口只有一个。到底哪个程序入口被选中,取决于__name__的取值。其实这句代码作用就是模块直接运行时,代码块执行,模块被导入时,代码块不执行。

    这行代码实质是:编写私有化部分,这行代以上内容可以被其他调用,这行代码以下部分只有自己看见,当被调用时别人无法看见更不能调用执行。

    引用资料:https://blog.konghy.cn/2017/04/24/python-entry-program/

  • 相关阅读:
    1. DataBinding
    DataBinding 笔记
    做过的自定义 View
    自定义View
    拖拖看小游戏
    UIView
    UIButton
    故事板
    (译)Getting Started——1.3.4 Writing a Custom Class(编写自定义的类)
    (译)Getting Started——1.3.3 Working with Foundation(使用Foundation框架)
  • 原文地址:https://www.cnblogs.com/mernva/p/13798769.html
Copyright © 2011-2022 走看看