title: When to use 'raise NotImplementedError'?
body: <p>Is it to remind yourself and your team to implement the class correctly?
  I don't fully get the use of an abstract class like this:</p>
  
  <pre><code>class RectangularRoom(object):
      def __init__(self, width, height):
          raise NotImplementedError
  
      def cleanTileAtPosition(self, pos):
          raise NotImplementedError
  
      def isTileCleaned(self, m, n):
          raise NotImplementedError
  </code></pre>