I'm trying to understand what are the benefits of the fact that python defaults to not checking function arguments.
For example:
from some_module import my_function
my_function(some_argument)
# some_argument could be a very complicated data structure
# made of dictionaries and lists.
# I have to depend on the good will of the developer of my_function
# to get reasonable error logs/exceptions.
# If the type checks were completed for function arguments on the level of the language
# it would be much clearer that the function is failing because of the wrong structure of the argument
The above is an attempt to reason why it would be a positive if type checking for arguments existed as a core functionality of the language.
What are the positive sides of the current status quo (no argument type checks)?
typing
module in version 3.5. Python itself ignores these type annotations, but you can use the externalmypy
tool as a type checker.