在编写Python程序的时候,总是习惯性的在文件的末尾添加这么一段代码
if __name__ == "__main__":
...
从上述代码可以看出if __name__ == "__main__":是个条件语句,判断__name__这个变量是否等于__main__
我们在脚本demo.py文件中执行dir()函数,获取当前模块的变量名,并判断当前模块是否包含__name__变量
# demo.py
print(dir())
# True
print('__name__' in dir())
上述脚本文件中我们没有定义任何变量,从而可知道__name__是Python内置的一个属性
我们打印__name__,看看该变量的值
# demo.py
print(dir())
# True
print('__name__' in dir())
print('__name__:',__name__) # __name__: __main__
从上述结果可以了解到变量__name__的值为__main__,我们继续在文件的末尾添加 if __name__ == "__main__":代码
# demo.py
# True
print('__name__' in dir())
print('__name__:',__name__)
print('Hello123')
if __name__ == '__main__':
print('Hello456')
运行结果如下所示
True
__name__: __main__
Hello123
Hello456
提示Tips
__name__ 是个变量,每个.py文件都有这个变量,'__main__ ' 是个普通的字符串,不是变量,但可以作为变量的值进行使用
我们在同一文件夹下创建一个名为import_demo.py脚本文件,输入如下代码
# import_demo.py
import demo
上述脚本运行结果如下所示
True
__name__: demo
Hello123
我们从上述结果可以发现,运行import_demo.py脚本后,demo.py脚本中的__name__变量值是'demo',由于__name__变量值不再是'__main__',所以 __name__ == "__main__"的结果是False,不执行print('Hello456')操作
提示Tips
变量__name__所在的 .py 文件没被别的 .py 文件调用时,其值是'__main__ '
变量__name__所在的 .py 文件被别的 .py 文件调用时,它的值就不再是 '__main__ '了,而是变成它所在 .py的文件名
练习案例
定义一个实现加法功能的py代码
# add_.py
def add(a, b):
return a + b
res = add(2, 3)
print(res)
定义另一个py代码,导入add_.py中的add方法,类似模块导入
# use_.py
from add_ import add
res = add(2, 3)
print(f'结果是:{res}')
运行结果如下所示
5
结果是:5
我们只想要一个结果5,但是结果输出两个,我们可以把add_.py代码中的测试代码,放在if __name__== '__main__':中,use_.py执行add()就不会执行测试代码
# add_.py
def add(a, b):
return a + b
if __name__=='__main__':
res = add(2, 3)
print(res)
运行use_.py,输出结果如下所示
结果是:5
if __name__ == '__main__'的作用
python文件通常有两种使用方法:
① 作为脚本直接执行
② import到其他的 python 脚本中被调用执行文章来源:https://www.toymoban.com/news/detail-425368.html
if __name__ == '__main__':的作用就是控制这两种情况执行代码的过程,在 if __name__ == '__main__':下的代码只有在第一种情况下才会被执行,而 import 到其他脚本中是不会被执行的文章来源地址https://www.toymoban.com/news/detail-425368.html
到了这里,关于[Python] if __name__ == ‘__main__‘的作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!