In this tutorial, we’ll learn about Duck Typing. Duck Typing in python is one way of implementing Polymorphism. This term comes from a saying “If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.
This must sound strange to you but what you need to know from this is the behavioral concept from the statement like If something matches Duck, it is a Duck.
Let’s understand this using an example.
class Fruit: def type(self): print("I am a Fruit") print("I am Tasty") class Veggie: def type(self): print("I am a Veggie") print("I am Healthy") class Plant: def name(self, plantobj): plantobj.type() plantobj = Veggie() plant1 = Plant() plant1.name(plantobj)
We first created three classes named
Plant. We first defined a method called
Plant with one required parameter that is
plantobj and we then called another function
type inside the method.
We have already defined
plantobj as a parameter but haven’t defined it yet which we’ll perform later. This is also called Dynamic Typing.
Now notice that we have defined the same method,
type in both the classes Fruit and Veggie. Now when we call the method
name, it requires a parameter. This parameter is the object of the class that we want to use.
You can use any class object but you need to make sure that the class should have the method type that has been called. Let’s check the output of the above example.
I am a Veggie I am Healthy
Now, if we change the object to Fruit class object,
plantobj = Fruit() plant2 = Plant() plant2.name(plantobj)
I am a Fruit I am Tasty
Now, if you read the statement again, “If it behaves like a duck, swims like a duck, and quacks like a duck, then it probably is a duck. In the same way, we have an object
plantobj which has a method called type, we’re good because we’re not concerned about which class object it is.
This is known as Duck Typing.