python中assert检验参数

Python的assert语句,可以说是一个debug的好工具,主要用于测试一个条件是否满足。如果测试的条件满足,则什么也不做,相当于执行了 pass 语句;如果测试条件不满足,便会抛出异常 AssertionError,并返回具体的错误信息(optional)。

它的具体语法是下面这样的:

assert_stmt::="assert"expression[","expression]

此外,一定记住,不要在使用 assert 时加入括号,比如下面这个例子:

assert(1==2,'Thisshouldfail')#输出:1:SyntaxWarning:assertionisalwaystrue,perhapsremoveparentheses?assert(1==2,'Thisshouldfail')

如果你按照这样来写,无论表达式对与错(比如这里的 1 == 2 显然是错误的),assert 检查永远不会 fail,程序只会给你 SyntaxWarning。

正确的写法,应该是下面这种不带括号的写法:

assert1==2,'Thisshouldfail'#输出AssertionError:Thisshouldfail

总的来说,assert 在程序中的作用,是对代码做一些 internal 的 self-check。使用 assert,就表示你很确定。这个条件一定会发生或者一定不会发生。

Assert是程序员用于保证程序的正确性,不是用于检查使用者输入参数是否合法,换言之,Assert可以简单的理解为程序员的debug工具,正式的代码中应该使用raise来检查用户输入是否正确,如下:

#assert
assertport>=minimum,'Unexpectedport%dwhenminimumwas%d.'%(port,minimum)
#raise
ifminimum<1024:
raiseValueError('Minimumportmustbeatleast1024,not%d.'%(minimum,))

以上就是我们在本篇中关于assert的学习,相信大家已经知道assert不是用来检验参数是否正确了,更多其它的内容还需要小伙伴们自己探索。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。