关于 __name__== '__main__'的问题
现有如下一段代码:文件路径为: D:/program/python_code/test/TemperatureConversion.py#TemperatureConversion.py
def c2f(cel):
fah = cel * 1.8 + 32
return fah
def f2c(fah):
cel = (fah-32)/ 1.8
return cel
def test():
print('测试,0摄氏度 = %.2f华氏度' % c2f(0))
print("测试,0华氏度 = %.2f摄氏度" % f2c(0))
if __name__ == '__main__':
test()
当执行如下程序:
>>import sys as s
>>s.path.append("D:/program/python_code/test/")
>> import TemperatureConversion as tc
>>tc.f2c(109)
>>42.77777777777778
请问当执行tc.f2c(109)时, 为何不执行TemperatureConversion.py文件中 test()?
在Python中,`if __name__ == '__main__':` 这一行的作用是判断当前模块是否是被直接运行的。如果是直接运行的,`__name__` 的值会是 `'__main__'`,因此 `test()` 函数会被执行。
然而,当你通过 `import TemperatureConversion as tc` 导入这个模块时,`__name__` 的值会是模块的名称 `'TemperatureConversion'`,而不是 `'__main__'`。因此,`if __name__ == '__main__':` 下面的代码块不会被执行。
这就是为什么在你导入模块并调用 `tc.f2c(109)` 时,`test()` 函数没有被执行的原因。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 if __name__ == '__main__':
test()
这行代码的意思是:如果当前脚本是作为主程序运行(而不是被其他脚本导入),那么执行 test() 函数。当你通过 import TemperatureConversion as tc 导入模块时,TemperatureConversion.py 并不是作为主程序运行,而是作为模块导入到其他脚本中,所以 test() 函数不会被执行。 很cool的阳 发表于 2024-11-3 09:14
if __name__ == '__main__':
test()
这行代码的意思是:如果当前脚本是作为主程序运行(而不是被其他 ...
是这样的
页:
[1]