python中if __name__ == '__main__'是什么?
__name__和__main__认识
作用:一般用于测试程序的功能,if __name__ == '__main__':下面的代码会被执行,但当前.py文件被当做模块导入的时候,main下面的代码就不会被执行,防止测试代码被执行。
语法:
if __name__ == '__main__':
            要执行的测试模块
 
if __name__ == "__main__":可以看成是python程序的入口,就像java中的main()方法,但不完全正确。
在.py文件中,除了def后面定义函数外的代码都会被认为是“main”方法中的内容,从而从上而下执行。
如果只是写一个print('hello world'),那这一句话就是一个程序,因此不需要所谓的"main"方法入口,直接运行测试就可以。
但如果是测试函数功能,我们就需要在.py文件中写上if__name__=="__main__",再调用函数,当然,如果你不写的话,也没关系,也可以直接将函数加括号进行调用。
我们写的目的就是防止后面会把当前.py文件当做模块导入其他.py文件中,从而误触发测试代码。
__name__的变化
1、__name__其实就是一个内置属性,在自己的py文件中被执行,__name__属性的值就是__main__:
示例代码:
# test.py
print("first")
 
 
def say_hello():
    print(__name__)
 
 
if __name__ == '__main__':
    print(__name__)
    say_hello()
运行结果:
first
__main__
__main__
2、将test.py文件导入其他文件中,__name__就会变为当前模块的名字,例如:__test__。
实例代码:
# work.py
 
import test  # 导入test
 
 
if __name__ == '__main__':
    test.say_hello()
    print(__name__)
执行结果:
first
test
__main__
总结:python不像JAVA中一样拥有main()方法的特点。所谓的入口其实也就是一个if条件语句,判断成功就执行下面if中的代码。JAVA等其他语言中会有特定的内置函数去识别main()方法入口,在main()方法中从上而下执行。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号