On Wed, 14 Aug 2013 14:16:31 +0000, climb65 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.
Yes it is. The built-in type dict is a good example, there is the regular default constructor[1] that you can call like this: dict([('a', 100), ('b', 200)], spam=1, ham=2, eggs=3) Plus there is an alternative constructor that you can call like this: dict.fromkeys(['a', 'b', 'spam', 'ham', 'eggs']) The way to create an alternative constructor is to use a class method: def MyDict(dict): @classmethod def fromkeys(cls, keys): ... If you need further details, please ask. [1] The constructor is __new__, not __init__. __init__ is called to initialise the instance after __new__ constructs it. -- Steven -- http://mail.python.org/mailman/listinfo/python-list