उपयोगकर्ता द्वारा परिभाषित आधार वर्ग NotImplementedError बढ़ा सकते हैं यह इंगित करने के लिए कि एक विधि या व्यवहार को एक उपवर्ग द्वारा परिभाषित करने की आवश्यकता है, जो एक इंटरफ़ेस का अनुकरण करता है। यह अपवाद RuntimeError से लिया गया है। उपयोगकर्ता परिभाषित आधार वर्गों में, अमूर्त विधियों को इस अपवाद को उठाना चाहिए जब उन्हें विधि को ओवरराइड करने के लिए व्युत्पन्न कक्षाओं की आवश्यकता होती है।
उदाहरण
import sys
try:
class Super(object):
@property
def example(self):
raise NotImplementedError("Subclasses should implement this!")
s = Super()
print s.example
except Exception as e:
print e
print sys.exc_type आउटपुट
Subclasses should implement this! <type 'exceptions.NotImplementedError'>