Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!newsfeed.straub-nv.de!uucp.gnuu.de!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: Thomas Rachel Newsgroups: comp.lang.python Subject: Re: inheritance and how to use it Date: Fri, 15 Feb 2013 18:06:00 +0100 Organization: A newly installed InterNetNews server Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130105 Thunderbird/17.0.2 In-Reply-To: Lines: 45 NNTP-Posting-Date: 15 Feb 2013 18:10:02 CET NNTP-Posting-Host: d7838b6b.newsspool1.arcor-online.net X-Trace: DXC=W\a5 Hi, > I use a module downloaded from the net. Now I want to build my own > class, based on the class SerialInstrument offered in this module - and > in my class I would like to initialize a few things, using e. g. the > method clear() offered by SerialInstrument. Hence I type: > > class myClass(SerialInstrument) > self.clear(self) > def f1(self, str1, str2) > ...do something etc. > > I then get the message "self not know" from the statement > self.clear(self). Which is absolutely correct. Besides, I would have expected some syntax errors. You try to execute the clear() method during the definition of the class, not during the instantiation. Instantiation happens in the __init__() method. You'll have to do it like this: class myClass(SerialInstrument): def __init__(self, *a, **k): # accept all parameters super(myClass, self).__init__(*a, **k) self.clear() # I don't think that self is to be given twice here... def f1(self, str1, str2): pass I have tried many other notations - none worked. What > works is however the following code - specifying myClass without the > self.clear(self) in it: > > x = myClass("argument") > x.clear() Here the clear() is called on the object which has been created, so after calling the __init__() above (which is, roughly, equivalent to calling it at the bottom of __init__()). Thomas