【发布时间】:2011-03-07 22:21:20
【问题描述】:
这里有四个简单的 assert 调用:
>>> assert 1==2
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
>>> assert 1==2, "hi"
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError: hi
>>> assert(1==2)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
>>> assert(1==2, "hi")
请注意,最后一个不会引发错误。带或不带括号调用断言导致此行为有什么区别?我的做法是使用括号,但上面建议我不应该。
【问题讨论】:
-
感谢您提供有用的答案。关键字和内置函数之间的区别似乎很微妙。这是一个关键字列表,我认为应该省略括号:docs.python.org/reference/lexical_analysis.html#keywords
-
一个区别是您可以重新定义内置函数,但不能使用关键字(不是前者是个好主意)。
-
不是函数和关键字的区别,而是函数调用 vs 语句。 (例如 - print 曾经是一个语句,并且没有括号)。
标签: python assert parentheses