On Wed, Aug 14, 2013 at 10:16 AM, climb65 <clim...@laposte.net> wrote:
> Hello, > > here is a small basic question : > > Is it possible to have more than one constructor (__init__ function) in a > class? For instance, to create an object with 2 different ways? If my > memory is good, I think that with C++ it is possible. > > Thanks for your answer. > > No, Python does not allow method overloading: >>> class Test: ... def __init__(self): ... print "first init" ... def __init__(self, arg): ... print "init with arg" ... >>> a = Test() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __init__() takes exactly 2 arguments (1 given) No error on actually writing the class, but only the last __init__ is kept. You could, however, emulate that behavior with optional arguments, or something more sophisticated as the need may be. This stackoverflow question covers a few alternatives: http://stackoverflow.com/questions/6434482/python-function-overloading
-- http://mail.python.org/mailman/listinfo/python-list