正在获取试图使用assert进行测试的下一行的语法错误。在
#test is_valid_date for April 4, 2014 and Januarary 3, 2012
print assert(is_valid_date(2014,4,4))
print assert(is_valid_date(2012,1,3))
如果函数is_valid_date
返回true,那么assert不应该返回true吗?在
这是实际的is_valid_date
实现。在
^{pr2}$
Tags:
assert
不是函数,而是一个语句,因此不能在print
的表达式中使用。你可能想做的是:
也就是说,首先执行
print
语句,然后执行assert
语句(不过,对于只返回True或False的函数,在断言之前打印返回值没有多大好处)。如果您经常这样编写代码,可以考虑编写自己的实用程序函数:
^{pr2}$或者像这样:
您希望
assert
返回什么?为什么要print
该值?你的用法不太地道。取出print
,并在assert
中添加一个您正在测试的东西的描述,作为它的第二个参数。切题地说,也许你想重构你的函数来避免arrow antipattern
^{pr2}$这可能有些过头了,但您会注意到添加新条件现在很容易,添加调试打印以查看代码拒绝输入的位置现在非常简单。
相关问题 更多 >
编程相关推荐