:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
:文章若有幸对你有帮助,可点赞 收藏 ⭐不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处
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__':
块中的代码。参考:https://blog.csdn.net/heqiang525/article/details/89879056
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 来确保代码执行时的条件满足预期,帮助开发者在调试和测试过程中快速捕捉潜在的问题。
如下案例是为了说明assert关键字后面跟着函数的话,也会被执行的,会有输出结果!做的判断是return返回值与-1,而不是print打印出来的值。
def divide(x, y):
assert y != 0, "除数不能为零"
print(x/y)
return x / y
assert divide(-1, 1) == -1 #正常运行,并输出-1
参考:https://blog.csdn.net/TeFuirnever/article/details/88883859