I come from a C# background where the language has some built in \"protect the developer\" features. I understand that Python takes the \"we\'re all adults here\" approach and
Create your 'abstract' class and raise NotImplementedError() in the abstract methods.
raise NotImplementedError()
It won't stop people using the class and, in true duck-typing fashion, it will let you know if you neglect to implement the abstract method.