คลาสพื้นฐานที่ผู้ใช้กำหนดสามารถเพิ่ม NotImplementedError เพื่อระบุว่าเมธอดหรือพฤติกรรมจำเป็นต้องกำหนดโดยคลาสย่อย โดยจำลองอินเทอร์เฟซ ข้อยกเว้นนี้มาจาก RuntimeError ในคลาสพื้นฐานที่ผู้ใช้กำหนด เมธอด abstract ควรยกข้อยกเว้นนี้เมื่อต้องการคลาสที่ได้รับมาแทนที่เมธอด
ตัวอย่าง
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'>