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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to