Python的__name__ 属性详解

本文解释了Python中if __name__ == '__main__'的作用及其应用场景。当模块作为脚本直接运行时,__name__属性值为'__main__',此时会执行if块内的代码。这一特性使得模块既可被导入也可独立执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Python 模块中看到 if __name__ == '__main__': 这样的代码,究竟有什么作用呢?意思是说:模块既可以被导入(到 Python shell 或者其他模块中),也可以作为脚本来执行。

__name__ 属性

所有模块都有一个内置的属性 __name__,__name__ 的值取决于如何使用这个模块。

例如,有一个名为 calc.py 的模块,包含以下代码:

print('__name__:', __name__)

当导入模块时,__name__ 是模块的文件名:

>>> import calc

__name__: calc

但是,如果将其作为脚本使用,__name__ 就是一个特殊的值 __main__:

$ python calc.py

__name__: __main__

由此,可以得出一个结论:当模块被导入时,模块名称是文件名;而当模块作为脚本独立运行时,名称为 __main__。

让模块既可以导入又可以执行

回到最初的问题:if __name__ == '__main__':?

通过上面的结论,可以推断出:只有当模块直接运行(即:不导入)时,才会执行 if 块内的代码。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值