擅长:python、mysql、java
<p>它被称为哨兵,你可以为它使用任何独特的对象:</p>
<pre><code>sentinel = object()
if r is sentinel:
raise Exception(..)
</code></pre>
<p>这里我使用了一个简单的<code>object()</code>实例,而不是一个自定义类。你知道吗</p>
<p>自定义类的优点是它可能更易于自文档化;如果您的API<em>有</em>将对象传递给API的用户(可以是代码),那么显式类更好。仅在API的黑盒中使用<code>object()</code>就可以了。你知道吗</p>
<p>您可能需要考虑在您现在返回sentinel的地方引发异常。您总是可以再次捕获异常。你知道吗</p>