【Python基础】if __name__ == ‘__main__‘:和assert函数
最佳答案 问答题库508位专家为你答疑解惑
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
文章目录
- if __name__ == '__main__':
- 简介
- 代码案例
- assert函数
- 简介
- 基本语法
- 代码案例
if name == ‘main’:
简介
if __name__ == '__main__':
在Python中,if __name__ == '__main__'
是一个常见的代码结构和惯用法。它用于确定当前模块是作为主程序执行,还是被导入为一个模块文件。
当一个Python脚本被执行时,解释器会将特殊变量__name__
设置为'__main__'
。因此,通过使用if __name__ == '__main__'
来判断当前模块是否在主程序中执行。
主要的用途包括:
-
模块的测试:通过将测试代码放在
if __name__ == '__main__'
的条件下,可以确保只有在直接运行模块时才会执行测试代码,而在被导入为模块时不会被执行。 -
执行模块的初始化操作:如果某些代码需要在模块被作为主程序执行时运行,可以将这些代码放在
if __name__ == '__main__'
的条件下。
简而言之,if __name__ == '__main__'
的使用可以让模块既可以作为独立的脚本运行,又可以作为其他模块的导入文件使用,提供了更灵活和可复用的代码组织方式。
代码案例
假设我们有两个文件:module1.py和module2.py。
首先,我们来看一下module1.py的内容:
# module1.py
def multiply(a, b):return a * b
if __name__ == '__main__':result = multiply(2, 3)print(f"The result is: {result}")
module1.py中定义了一个名为multiply的函数,用于计算两个数的乘积。在if name == ‘main’:这个条件下,我们调用了multiply函数,并输出结果。
接下来,我们来看一下module2.py的内容:
# module2.py
from module1 import multiply
result = multiply(4, 5)
print(f"The result is: {result}")
module2.py
中导入了module1
模块,并调用了multiply
函数计算两个数的乘积,并将结果输出。
现在分别执行这两个模块看看结果:
当我们执行module1.py时,if name == ‘main’:条件成立,因为__name__的值为’main’。所以,multiply(2, 3)被调用,结果为6,并输出结果:“The result is: 6”。
当我们执行module2.py
时,if __name__ == '__main__':
条件不成立,因为__name__
的值是"module1"
,而不是'__main__'
。所以,multiply(4, 5)
不会被调用。
总结一下:
- 当模块被直接执行时(作为主程序入口),__name__的值为’main’,执行if name == ‘main’:块中的代码。
- 当模块被导入时,
__name__
的值为模块的名字,不等于'__main__'
,不执行if __name__ == '__main__':
块中的代码。
通过使用if name == ‘main’:条件,我们可以在一个模块中编写测试代码或示例代码,保证只有当该模块作为主程序入口执行时,这些代码才会被执行。这样可以方便进行模块的测试和示例运行,而不影响模块作为其他模块的导入使用。
参考:https://blog.csdn.net/heqiang525/article/details/89879056
assert函数
简介
python assert的作用:assert函数用于程序调试
基本语法
1、The simple form:
assert expression
该形式用来测试断言的expression语句,如果expression是True,那么什么反应都没有。但是如果expression是False,那么会报错AssertionError,
2、assert断言语句可以添加异常参数,也就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。格式如下:
assert expression [, arguments]
assert 表达式 [, 参数]
代码案例
当然!下面是一个简单的代码案例,展示了如何使用 assert
关键字:
def divide(x, y):assert y != 0, "除数不能为零"return x / y
# 测试除法函数
print(divide(10, 2)) # 输出: 5.0
print(divide(10, 0)) # 触发 AssertionError 异常
在上述代码中,我们定义了一个名为 divide 的函数,用于执行两个数字的除法运算。使用 assert 来确保除数 y 不为零,如果为零则触发断言异常,并且提示错误信息。
在打印 divide(10, 2) 的结果时,由于除数不为零,条件为真,所以程序继续执行,输出结果为 5.0。而当我们调用 divide(10, 0) 时,由于除数为零,条件为假,触发 AssertionError 异常,并输出错误信息 “除数不能为零”。
这个简单的例子展示了如何使用 assert 来确保代码执行时的条件满足预期,帮助开发者在调试和测试过程中快速捕捉潜在的问题。
参考:https://blog.csdn.net/TeFuirnever/article/details/88883859
99%的人还看了
相似问题
- go语言实现高性能自定义ip管理模块(ip黑名单)
- 【Django使用】4大模块50页md文档,第4篇:Django请求与响应和cookie与session
- 【python学习】基础篇-常用模块-pickle模块:序列化和反序列化
- #gStore-weekly | gAnswer源码解析 调用NE模块流程
- 【前端知识】Node——events模块的相关方法
- 使用Python的turtle模块绘制玫瑰花图案(含详细Python代码与注释)
- 【ES6标准入门】JavaScript中的模块Module语法的使用细节:export命令和imprt命令详细使用,超级详细!!!
- SpringBoot学习笔记-配置MySQL与实现注册登录模块(中)
- 一个奇怪的蓝牙模块分析记录
- 前端JS模块化对外暴露的三种方法
猜你感兴趣
版权申明
本文"【Python基础】if __name__ == ‘__main__‘:和assert函数":http://eshow365.cn/6-14945-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: VS CODE中的筛选器如何打开?
- 下一篇: 基于体系结构-架构真题2022(四十一)