if __name__ == '__main__' 是什么

f1.py

# f1.py
PI = 3.14

def main():
    print("f1:PI:", PI)
    print("f1__name__:",__name__)

main()

运行 f1.py,输出为:

f1:PI: 3.14
f1__name__: __main__

f2.py

from f1 import PI

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

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

main()

f2.py 输出为:

f1:PI: 3.14
f1__name__: f1
round area:  12.56

由上可知,name 的值为其所处模块的 name。在本模块(f1)内的值为 main;当其被其它模块(f2)调用时,在 f2 模块中查看 f1 的 name,显示模块 f1 的 name。



在 f2 中,我们只想调用 f1 中的 PI 来计算圆的面积,并不需要运行 f1 中的 main() 函数,因此,使用“ if name ==’main’ ” 来对 f1 中的 main 函数进行约束,使其只在 f1 内部执行。当被调用时,name == ’f1‘,不等于 ’main‘,故在 f2 中不会执行 f1 中的 main 函数)


更改后如下:

# f1.py
PI = 3.14

def main():
    print("f1:PI:", PI)
    print("f1__name__:",__name__)

if __name__ == '__main__':


----------
OUT:

f1:PI: 3.14
f1__name__: __main__

执行 f2.py,结果为:

round area:  12.56

猜你喜欢

转载自blog.csdn.net/weixin_37392582/article/details/80535773