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 _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/7DCIKCAQOD7FLC3SKYYGBDEHUOYBU472/ Code of Conduct: http://python.org/psf/codeofconduct/