I agree that this would fix things, however there are some notable advantages to having base classes:
- runtime instance checking is faster,
- runtime instance checking is more precise, and
- intent to implement is clearly specified.
Personally, I think we should prefer base classes to protocols, but I understand your point.
That’s a very cool idea, and would be a fine solution to this.
Nice find! So my suggestion is the same as Guido’s I guess?
Okay, I guess my preference would be to remove this odd decoration. I don’t think we do it in any other similar place? I don’t think I’ve ever written a method that I decorated with @abstractmethod
that didn’t also raise in its body.