擅长:python、mysql、java
<p><code>assert</code>不是函数,而是一个语句,因此不能在<code>print</code>的表达式中使用。</p>
<p>你可能想做的是:</p>
<pre><code>is_valid = is_valid_date(2014, 4, 4)
print is_valid
assert is_valid
</code></pre>
<p>也就是说,首先执行<code>print</code>语句,然后执行<code>assert</code>语句(不过,对于只返回True或False的函数,在断言之前打印返回值没有多大好处)。</p>
<p>如果您经常这样编写代码,可以考虑编写自己的实用程序函数:</p>
^{pr2}$
<p>或者像这样:</p>
<pre><code>def assert_is_valid_date(*args):
is_valid = is_valid_date(*args)
print is_valid
assert is_valid
assert_is_valid_date(2014, 4, 4)
</code></pre>