On 4/25/21 9:09 AM, Shreyan Avigyan wrote:
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
Well, in Python with type annotations that would be spelled: def add(a: int, b: int): return a + b but the one difference is that, at least by default, that requirement is advisorary only. You can run a static type checker like mypy at it will see if it can deduce a case where you pass a non-int to the function. You could also import a module into your module that will actually do the check at run-time (I don't know of one, but there probably is one) maybe needing the function to be decorated to request the type checking. -- Richard Damon