On Mon, Aug 29, 2016 at 07:03:31PM +0000, monik...@netzero.net wrote: > > > Hi: > If __init__ is not defined in a class, will it be called when creating an > instance?
Yes, because the default __init__ does nothing. So if you don't need an __init__, just don't bother to write it! Try experimenting with code like this at the interactive interpreter: # Wrong, don't do this: class MyObject(): def __init__(self): # Do nothing! pass def method(self): print("called method") # Better: class MyObject(): def method(self): print("called method") obj = MyObject() > What in a case if this class inherits from parent with __init__ and without > __init__? If you use super(), Python will work out what to do. So long as all the existing __init__ methods take the same arguments, use super(). If they take different arguments, you can't use super() and have to do it by hand. I see you are doing a lot of multiple inheritence (MI). I don't want to discourage you, but MI is considered an advanced subject. (Most programming languages don't even support it!) You should make sure you understand single inheritence and super() very well before tackling MI, otherwise you're likely to get confused. In any case, feel free to ask questions or ask for clarifications, and we'll answer as best we can. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor