擅长:python、mysql、java
<p><code>NotImplementedError</code>是一个异常;不要返回它,<em>将其作为异常引发:</p>
<pre><code>class Crawler():
def get_image_source_url(self, image_page_soup):
raise NotImplementedError("method get_image_source_url must be implemented")
def get_image_thumbnail_url(self, image_page_soup):
raise NotImplementedError("method get_image_thumbnail_url must be implemented")
def get_tags_container(self, image_page_soup):
raise NotImplementedError("method get_tags_container must be implemented")
</code></pre>
<p>你不需要在这里“包装”任何东西。如果子类实现该方法,则不会调用原始方法,并且不会引发异常。在</p>
<p>如果需要进一步处理,并且子类实现是可选的,但外部API不应可见,则可以要求子类使用不同的名称来实现方法,从基类方法调用:</p>
^{pr2}$
<p>这里<code>self.get_image_source_url()</code><em>将</em>委托给可选的<code>self._image_source_url_implementation()</code>方法。在</p>