![](https://secure.gravatar.com/avatar/0d1f9784fdb7039adc2252aa11e53342.jpg?s=120&d=mm&r=g)
Think it like this. We have this code in Python :- def add(a, b): return a + b Here we are taking two arguments a, b and then returning a + b. But we can pass in instance of any class like str, int, float, dict, user-defined class, etc. But we only want to add int here. Here we can modify it to be, def add(a, b): if type(a) == int and type(b) == int: return a +b raise Exception("Error") In this example it's pretty easy to check if the arguments are int. But in real world programs as the functions become bigger and bigger it's very difficult to check arguments using an if statement. Therefore why not let the user specify what parameter types are gonna be? Like, def add(int a, int b): return a + b If instance of a different class is passed in then raise a TypeError perhaps? If parameter types are not given then let the parameter accept any kind of class instance. This kind of functionality will minimize a lot of if statements related to parameter types and arguments. Thanking you, With Regards