> I can execute the script without any problem and I will not notice the bug until I > test exactly the erroneous line of code (the call with only one argument).
The key phrase there being "until I test..." <wink> There are static analysis tools for Python like pylint. Given this simple module: #!/usr/bin/env python def func2(a, b): print(a, b) def func1(a): print(a) func2(1) among other messages, pylint prints: E: 9, 0: No value for argument 'b' in function call (no-value-for-parameter) where line 9 is the erroneous call to func2(). Static analysis tools like pylint aren't perfect, but do catch a bunch of stuff. Also, given the run-time detection of errors, in dynamic languages like Python, unit tests and code coverage are particularly important. Also, check out type hints, mypy, and the typeshed project: https://www.python.org/dev/peps/pep-0484/ http://mypy-lang.org/ https://github.com/python/typeshed Skip -- https://mail.python.org/mailman/listinfo/python-list