As this says:
Function overloading is absent in Python.
As far as I feel this a big handicap since its also an OO language. Initially I found that unable to differentiate between the argument types was difficult but the dynamic nature of Python made it easy (e.g. list, tuples, strings are much similar).
However counting the number of arguments passed and then doing the job is like an overkill.
Now, unless you're trying to write C++ code using Python syntax, what would you need overloading for?
I think it's exactly opposite, overloading is only necessary to make strongly typed languages act more like Python. In Python you have keyword argument, you have *args
and **kwargs
.
See for example: What is a clean, pythonic way to have multiple constructors in Python?