This answer actually applies to all methods, but the question usually comes up first in the context of constructors.
In C++ you’d write
class C {
C() { cout << "No arguments\n"; }
C(int i) { cout << "Argument is " << i << "\n"; }
}
in Python you have to write a single constructor that handles all cases, using either default arguments or type or capability tests. For example:
class C:
def __init__(self, i=None):
if i is None:
print "No arguments"
else:
print "Argument is", i
This is not entirely equivalent, but close enough in practice.
You could also try a variable-length argument list, e.g.
def __init__(self, *args):
The same approach works for all method definitions.