There’s no interface
keyword in Python. The Java / C# way of
using interfaces is not available here. In the dynamic language world, things
are more implicit. We’re more focused on how an object behaves, rather than it’s
type/class.
If it talks and walks like a duck, then it is a duck
If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.
So if we have an object that can fly and quack like a duck, we consider it as a duck. This called “Duck Typing”.
ref: http://masnun.rocks/2017/04/15/interfaces-in-python-protocols-and-abcs/