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