作者:冷瞳流行精品服装店 | 来源:互联网 | 2024-12-07 21:28
本文介绍了如何在Python脚本中使用`if__name__=='__main__'`结构来区分脚本是直接运行还是被导入为模块,并通过温度转换的例子详细解释了其工作原理。
部分一:温度转换脚本
文件 TemperatureConversion.py
包含了两个函数,用于摄氏度和华氏度之间的相互转换:
def c2f(celsius):
fahrenheit = celsius * 1.8 + 32
return fahrenheit
def f2c(fahrenheit):
celsius = (fahrenheit - 32) / 1.8
return celsius
# 测试函数
def test():
print("主函数")
print("0摄氏度 = %.2f华氏度" % c2f(0))
print("0华氏度 = %.2f摄氏度" % f2c(0))
if __name__ == '__main__':
test()
另一个文件 calc.py
使用了 TemperatureConversion.py
中定义的功能:
import TemperatureConversion as tc
print("模块")
print("32摄氏度 = %.2f华氏度" % tc.c2f(32))
print("99华氏度 = %.2f摄氏度" % tc.f2c(99))
部分二:结果展示与分析
当直接运行 TemperatureConversion.py
时,会看到如下输出:
而当作为模块导入到 calc.py
时,TemperatureConversion.py
中的测试代码不会被执行,只有被显式调用的函数会被执行。
分析:
- 在
calc.py
文件中,当此文件被直接运行时,__name__
变量的值为 '__main__'
。
- 在
TemperatureConversion.py
文件中,如果它被当作一个模块导入,则 __name__
的值将是该模块的名字,即 'TemperatureConversion'
。
- 通过检查
if __name__ == '__main__':
,可以控制某些代码块仅在脚本直接运行时才被执行,而不是在被导入为模块时执行。