April 2019
Intermediate to advanced
646 pages
16h 48m
English
An interface is a definition of an API. It describes a list of methods and attributes that a class should have to implement with the desired behavior. This description does not implement any code, but just defines an explicit contract for any class that wishes to implement the interface. Any class can then implement one or several interfaces in whichever way it wants.
While Python prefers duck typing over explicit interface definitions, it may be better to use the latter sometimes. For instance, an explicit interface definition makes it easier for a framework to define functionalities over interfaces.
The benefit is that classes are loosely coupled, which is considered as a good practice. For example, to perform a given process, ...