<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Aug 14, 2013 at 10:16 AM, climb65 <span dir="ltr"><<a href="mailto:climb65@laposte.net" target="_blank">climb65@laposte.net</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
here is a small basic question :<br>
<br>
Is it possible to have more than one constructor (__init__ function) in a<br>
class? For instance, to create an object with 2 different ways? If my<br>
memory is good, I think that with C++ it is possible.<br>
<br>
Thanks for your answer.<br><br></blockquote></div><br></div><div class="gmail_extra">No, Python does not allow method overloading:<br><br>>>> class Test:<br>...  def __init__(self):<br>...    print "first init"<br>



...  def __init__(self, arg):<br>...    print "init with arg"<br>...<br>>>> a = Test()<br>Traceback (most recent call last):<br>  File "<stdin>", line 1, in <module><br>TypeError: __init__() takes exactly 2 arguments (1 given)<br>



<br></div><div class="gmail_extra">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: <a href="http://stackoverflow.com/questions/6434482/python-function-overloading" target="_blank">http://stackoverflow.com/questions/6434482/python-function-overloading</a><br>


</div></div>