By making these `@abstractmethod`s, you're require subclasses to implement them. In that case, the body of the method is used for cooperative inheritance, and should `pass`, rather than raising an exception, so that concrete classes (that provide an implementation) are safe to call `super(ConcreteModuleStore, self).has_item(course_id, location)` without worrying that it will throw a `NotImplementedError`.