python中if __name__ == "__main__"(左右均为两条下滑线)的具体作用
它的作用其实很简单就一句话确认if语句下的语句(如函数,变量)是否是本文件中的或者本程序中的如果不是就无法通过测试。
因为在python中建立一个文件如果你使用
print(__name__) 那么这个输出就是__main__
这个是时刻成立的(__name__ == “__main__”)
但是如果当你把这个文件(模块)用import语句引入到其他文件中时比如说我创建了一个名为
hello.py
# -*-coding:utf-8-*-
imort name
if __name__ == "__main__":
print("hello")
还有一个 nam.py
# -*-coding:utf-8-*-
print("eeee")
print(__name__)
if __name__ == "__main__":
print("haha")
两个文件 当我们单独运行 nam.py 时输出为
eeee
__main__ (上文已经说出了理由)
haha
当我们在hello.py中引入 nam.py 时 输出如下:
eeee (在python中一个文件(模块)引用另一个模块是如果引用的那个模块有print语句那么
就会执行先执行被引用那个模块中的print语句,所以还是会输出“”eeee“”)
__nam__ (可以看到此时的输出已经不是__main__了)
hello
所以综上所述在一个模块(文件)中 __name__始终等于“__mian__”但当这个模块背其他模块引用
时__name__就会变成 该文件的文件名 如 nam 如上
那你肯定要问了那这一个语句到底有什么用呢?
当然他的用处还是很大的 比如说 进行模块中函数的测试 就是当一个模块中写的代码太多时就
可以用这样的方法来将这个模块导入到另一个模块中利用这个语句来测试
比如 if __name__ == __xxx__ :..... 用这个就可以进行测试了。
完
完完
完完完
完完完完
完完完完完
完完完完完完
完完完完完完完
完完完完完完完完
完完完完完完完完完
好累啊终于写完了看来这个打字速度还有待加强