面试题答案
一键面试在Python中,__name__
变量用于判断当前模块是作为主程序运行还是被其他模块导入。
当模块作为主程序运行时,__name__
的值为__main__
;当模块被导入时,__name__
的值为模块的名称。
以下是利用__name__
来控制模块代码在不同场景下行为的示例:
假设我们有一个模块example_module.py
:
def add_numbers(a, b):
return a + b
# 单元测试代码
def test_add_numbers():
result = add_numbers(2, 3)
assert result == 5
if __name__ == "__main__":
# 当模块作为主程序运行时执行以下代码
test_add_numbers()
print("All tests passed!")
在这个例子中:
- 当
example_module.py
作为主程序运行时,if __name__ == "__main__":
条件成立,会执行test_add_numbers()
函数进行单元测试,并打印"All tests passed!"。 - 当
example_module.py
被其他模块导入时,if __name__ == "__main__":
条件不成立,单元测试代码不会执行,这样导入该模块的其他程序就不会受到单元测试代码的干扰。