Loading

if __name__ == '__main__' 是什么意思

__name__是python中的内置变量,表示当前模块/方法/函数的名称

当.py文件被直接运行时,if name == 'main'之下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main'之下的代码块不被运行。

如:
定义const.py

PI = 3.14

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

if __name__ == '__main__':
    main()

直接运行该py文件:

PI: 3.14

创建main.py文件,将const.py以模块形式导入到main.py中,const.py代码不变

from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print("round area: ", calc_round_area(2))

main()

运行结果:

round area:  12.56

此时const.py的if name == 'main'下的函数不被运行。
此时可以在const.py中添加代码:

print(__name__)

打印会发现,__name__此时为"const"

同样,在main.py打印__name__,会发现main.py中的__name__为__main__


全部代码:
const.py:

PI = 3.14

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

print(__name__)
if __name__ == '__main__':
    main()
from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print("round area: ", calc_round_area(2))

print(__name__)
main()

运行结果:

const
__main__
round area:  12.56
posted @ 2024-05-07 17:44  踩坑大王  阅读(1157)  评论(0)    收藏  举报