inheritance and how to use it

Bob Brusa bob.brusa at
Fri Feb 15 18:50:02 CET 2013

Am 15.02.2013 18:06, schrieb Thomas Rachel:
> Am 15.02.2013 17:59 schrieb Bob Brusa:
>> 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)
>> 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

This does not work either. The error comes while python analyses the 
code - even prior to executing my program.... But what I want to achieve 
is that this clear() is executed when the class is instantiated....which 
I do with the code

x = myClass("COM7")

Of course, when scanning the class definition, the argument "COM7" is 
not yet known.
Thanks for further help. Bob

More information about the Python-list mailing list