Solid Principles, Python.
LaserPrinter. Now you are going to see what inversion means in dependency inversion. The first thing we do is to introduce a printer interface. This interface will just exist in our design. In a dynamic language like Python, we do not physically have to implement interfaces to get polymorphism.