Because I am used to the old ways of duck typing in Python, I fail to understand the need for ABC (abstract base classes). The help is good on how to use them. I tried to read the rationale in the PEP , but it went over my head. If I was looking for a mutable sequence container, I would check for __setitem__ , or more likely try to use it ( EAFP ). I haven't come across a real life use for the numbers module, which does use ABCs, but that is the closest I have to understanding. Can anyone explain the rationale to me, please? Oddthinking Short version ABCs offer a higher level of semantic