博客
关于我
python中为什么要有if __name__ == '__main__'?
阅读量:321 次
发布时间:2019-03-03

本文共 807 字,大约阅读时间需要 2 分钟。

if __name__ == '__main__' 是 Python 中一个常见的技术,用于控制模块或脚本的执行方式。它的作用是检测当前脚本是通过命令直接运行,还是作为其他脚本的模块被导入。在前者情况下,代码会执行;在后者情况下,由于 __name__ 不等于 '__main__',该语句的条件不满足,代码不会执行。

例如,在 a.py 中,如果你有以下代码:

def plus(a, b):    return a + bres = plus(1, 2)print(res)

当直接运行 a.py 时,__name__ 会被设置为 '__main__',因此代码会正常执行,输出 3

而在 b.py 中,你可以这样导入并使用 plus 函数:

from a import plusres = plus(2, 3)print(res)

在导入过程中,Python 会自动执行 a.py 中的代码,导致 res = plus(1, 2)print(res) 也会被执行,结果会是 3a5

为了避免这种情况,可以在 a.py 中添加 if __name__ == '__main__' 这一判断:

def plus(a, b):    return a + bif __name__ == '__main__':    res = plus(1, 2)    print(res)

这样,当 a.py 被直接运行时,__name__'__main__',代码正常执行;但当 a.py 被作为模块被导入(如在 b.py 中被导入)时,__name__ 不为 '__main__'if 语句的条件不成立,plus 函数不会被执行,避免了不必要的操作。

通过这种方式,可以确保模块被导入时不会执行其代码,只有在主程序运行时才执行。这种方法非常有用,特别是在开发可重用模块时,可以避免因导入操作触发副作用。

转载地址:http://bodq.baihongyu.com/

你可能感兴趣的文章
postman做接口测试
查看>>
QT实现TCPServer连接多个客户端(附完整源码)
查看>>
Postman做接口测试:如何自动校验接口响应
查看>>
postman做接口自动化测试
查看>>
Postman入门到入土
查看>>
Postman入门到精通01
查看>>
postman入门基础 —— 接口测试流程
查看>>
Postman和JMeter怎么选?区别都你总结出来了
查看>>
Postman如何做接口测试:如何导入 swagger 接口文档
查看>>
Postman如何做接口测试:如何导入 swagger 接口文档
查看>>
Qlik助力新西兰最大私人医院提高病患护理水平
查看>>
Postman如何生成接口文档
查看>>
Postman学习之常用断言
查看>>
postman导入curl内容
查看>>
postman居然是用electron开发的,我们来认识下这个框架吧
查看>>
postman常用公共函数
查看>>
Postman常见问题及解决方法
查看>>
PostMan怎样携带登录信息请求后台接口防止出现无法访问资源问题
查看>>
Postman接口传参案例
查看>>
postman接口功能测试
查看>>