MST

星途 面试题库

面试题:Python中__name__在模块管理里的基础作用及示例

请简述Python中__name__在模块管理中的作用,并给出一个简单示例说明如何通过__name__判断模块是被直接运行还是被导入。
32.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

__name__在模块管理中的作用

__name__是Python中每个模块都有的一个内置属性。当模块被直接运行时,__name__的值被设置为'__main__';当模块被导入时,__name__的值为模块的名字。这一特性使得模块可以知晓自身的运行方式,从而执行不同的代码逻辑,例如在模块被直接运行时执行测试代码,而在被导入时不执行这些测试代码,只提供模块的功能。

示例

def main():
    print("这个模块被直接运行")

if __name__ == '__main__':
    main()
else:
    print("这个模块被导入")

在上述示例中,如果直接运行这个Python文件,if __name__ == '__main__':条件成立,main函数会被调用并输出"这个模块被直接运行"。若该模块被其他模块导入,if条件不成立,会输出"这个模块被导入",main函数不会被调用。