擅长:python、mysql、java
<p>可能,但前提是<code>self.getData()</code>是一个纯函数且没有<em>副作用</em>。更重要的是,<code>self.getData()</code>返回的对象也必须没有任何副作用,并且始终返回布尔值。在</p>
<p>在最简单的情况下,如果<code>f()</code>定义为:</p>
<pre><code>def f():
return ["Hello World!"]
</code></pre>
<p>然后是:</p>
^{pr2}$
<p>在逻辑上等同于:</p>
<pre><code>x = f() or ""
</code></pre>
<p>由于<code>f()</code>在这两种情况下都被视为布尔表达式,<code>f()</code>将计算为<code>True</code>(ish)或{<cd7>}(ly)值,两个表达式都将返回相同的结果。在</p>
<p>这叫做<a href="http://en.wikipedia.org/wiki/Logical_equivalence">Logical Equivalence</a></p>
<blockquote>
<p>In logic, statements p and q are logically equivalent if they have the
same logical content. This is a semantic concept; two statements are
equivalent if they have the same truth value in every model (Mendelson
1979:56). The logical equivalence of p and q is sometimes expressed as
p \equiv q, Epq, or p \Leftrightarrow q. However, these symbols are
also used for material equivalence; the proper interpretation depends
on the context. Logical equivalence is different from material
equivalence, although the two concepts are closely related.</p>
</blockquote>