> On 22 Aug 2020, at 15:00, rawmin...@gmail.com wrote: > > I wanted to know if there could be TypeError when giving wrong type for > arguments in functions > (This usually happens when using other module's function) > > e.g: > > def sum(nom1: int, nom2: int): > nom = nom1 + nom2 > return nom > print(sum('hello',2)) > > if you run this code you will get TypeError for line 2 because 'you can only > concatenate str (not "int") to str' > But what am i saying is can it raise TypeError for line 4 because I gave > 'hello' as nom1 and nom1 should be int > > Now if I want to check arguments types I should use: > > def sum(nom1: int, nom2: int): > if isinstance(nom1, int) and isinstance(nom1, int): > nom = nom1 + nom2 > return nom > else: > raise TypeError('nom1 and nom2 should be int') > print(sum('hello',2)) > > But if they can add what am I am i saying it can decrease lines of this > function by 50% and also function author should not worry about checking > types anymore! > (I know I could use 'assert' but I just wanted to write it as simple as > possible)
Python does not check type annotations at runtime, although you could write a decorator that does this for you. It is unlikely that this will anytime soon. Ronald — Twitter / micro.blog: @ronaldoussoren Blog: https://blog.ronaldoussoren.net/ <https://blog.ronaldoussoren.net/>
_______________________________________________ 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/KYPLIPGBAM2DTBVNHPITXEENNHE7WRTT/ Code of Conduct: http://python.org/psf/codeofconduct/