找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 93|回复: 0

Python中的if __name__ == '__main__'用法

[复制链接]

8

主题

1

回帖

54

积分

管理员

积分
54
发表于 2025-11-6 00:07:55 | 显示全部楼层 |阅读模式
在Python编程中,if __name__ == '__main__'是一个常见的模式,它的作用是判断当前的Python脚本是被直接运行还是被导入到其他脚本中作为模块使用。这个语句块中的代码只有在脚本被直接执行时才会运行,而在被导入时不会执行。
代码示例
当你有一个Python文件,比如example.py,你可能希望在直接运行这个文件时执行某些操作,同时又希望能够从其他文件中重用其中的函数或类。这时,你可以使用if __name__ == '__main__'来区分这两种情况:
# example.py
def func():
print("func() 在 example.py 中被调用")
print("模块 example.py 被加载")
if __name__ == '__main__':
print("example.py 被直接运行")
func()
复制
如果你直接运行example.py,输出将会是:
模块 example.py 被加载
example.py 被直接运行
func() 在 example.py 中被调用
复制
但如果你导入example.py到另一个脚本中:
# import_example.py
import example
example.func()
复制
输出将会是:
模块 example.py 被加载
func() 在 example.py 中被调用
复制
注意if __name__ == '__main__':下面的代码没有被执行。
工作原理
Python解释器在执行脚本时会为每个模块设置__name__变量,如果该模块是被直接执行的,__name__变量被设置为'__main__',否则,它将被设置为模块的名称。因此,if __name__ == '__main__':实际上是在问:“这个脚本是被直接运行了吗?”如果是,那么执行该语句块下的代码。
这种模式的好处是,它允许一个脚本既可以被执行,也可以被导入到其他脚本中使用,而不会因为导入操作而执行不应该执行的代码。这提高了代码的可重用性,并允许脚本在作为独立程序运行时执行额外的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|樱论坛

GMT+8, 2025-12-8 02:19 , Processed in 0.046703 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表