Duck typing extends the concept of dynamic typing in Python.
Dynamic typing means that we can change the type of an object later in the code.
Due to the dynamic nature of Python, duck typing allows the user to use any object that provides the required behavior without the constraint that it has to be a subclass. See the code below for a better understanding of dynamic typing in Python: