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

Reply via email to