python中if __name__ == '__main__'是什么?

2019/04/10 10:10
阅读数 6

__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()方法中从上而下执行。

原文出处:https://www.cnblogs.com/cnhyk/p/12410958.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部