Karena mereka memiliki kasus penggunaan yang berbeda.
Mengutip dokumen (Python 3.6):
NotImplemented
harus dikembalikan oleh metode khusus biner (misalnya __eq__()
,
__lt__()
, __add__()
, __rsub__()
, dll) untuk menunjukkan bahwa operasi tidak dilaksanakan sehubungan dengan jenis lain
pengecualian NotImplementedError
[...] Dalam kelas dasar yang ditentukan pengguna, metode abstrak harus meningkatkan pengecualian ini ketika mereka membutuhkan kelas turunan untuk mengganti metode, atau saat kelas sedang dikembangkan untuk menunjukkan bahwa implementasi nyata masih perlu ditambahkan.
Lihat tautan untuk detailnya.