inheritance and how to use it

Dave Angel davea at davea.name
Fri Feb 15 19:06:14 CET 2013


On 02/15/2013 12:50 PM, Bob Brusa wrote:
> 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)
>>>          ...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
>
> 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
>

Your error is on line 115, so what does it look like, and its context? 
I expect you're never getting to the line x = myClass().

-- 
DaveA



More information about the Python-list mailing list