.jpg)
什么意思?如何使用?assert

网友回答:
注意括号。正如在其他答案中指出的那样,在 Python 3 中,仍然是一个语句,因此通过类比,人们可以推断出相同的内容,但你不应该。assertprint(..)assert(..)raise(..)
这是错误的:
assert(2 + 2 == 5, "Houston we've got a problem")
这是正确的:
assert 2 + 2 == 5, "Houston we've got a problem"
第一个不起作用的原因是计算结果为 .bool( (False, "Houston we've got a problem") )True
在语句中,这些只是多余的括号,它们对它们的内容进行了计算。但是带括号的元组现在是一个元组,一个非空元组的计算结果在布尔上下文中。assert(False)Falseassert(False,)True

网友回答:
该语句几乎存在于所有编程语言中。它有两个主要用途:assert
Exceptionassert当你这样做时…
assert condition
…您告诉程序测试该条件,如果条件为 false,则立即触发错误。
在 Python 中,它大致相当于这样:
if not condition:
raise AssertionError()
在 Python shell 中尝试一下:
>>> assert True # nothing happens
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
断言可以包含可选消息,您可以在运行解释器时禁用它们。
要在断言失败时打印消息,请执行以下操作:
assert False, "Oh no! This assertion failed!"
不要像函数一样使用括号进行调用。这是一个声明。如果这样做,则将以元组作为第一个参数运行。assertassert(condition, message)assert(condition, message)
至于禁用它们,当在优化模式下运行时,其中 is ,断言语句将被忽略。只需传递标志:python__debug__False-O
python -O script.py
有关相关文档,请参阅此处。

网友回答:
正如其他答案所指出的,类似于在给定条件不为真时引发异常。一个重要的区别是,如果使用优化选项编译代码,断言语句将被忽略。文档说,可以更好地描述为等同于assert-Oassert expression
if __debug__:
if not expression: raise AssertionError
如果您想彻底测试您的代码,然后在您满意您的断言案例都没有失败时发布优化版本,这会很有用 – 当优化开启时,变量变为 False,条件将停止评估。如果您依赖断言并且没有意识到它们已经消失,此功能也可以让您大吃一惊。__debug__
模板简介:该模板名称为【“assert”在 Python 中有什么用?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。