Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #38939
| Date | 2013-02-15 18:50 +0100 |
|---|---|
| From | Bob Brusa <bob.brusa@gmail.com> |
| Subject | Re: inheritance and how to use it |
| References | <mailman.1819.1360947575.2939.python-list@python.org> <kflpto$suo$1@r03.glglgl.gl> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1826.1360950608.2939.python-list@python.org> (permalink) |
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
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
inheritance and how to use it Bob Brusa <bob.brusa@gmail.com> - 2013-02-15 17:59 +0100
Re: inheritance and how to use it Thomas Rachel <nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915@spamschutz.glglgl.de> - 2013-02-15 18:06 +0100
Re: inheritance and how to use it Bob Brusa <bob.brusa@gmail.com> - 2013-02-15 18:50 +0100
Re: inheritance and how to use it Dave Angel <davea@davea.name> - 2013-02-15 13:06 -0500
Re: inheritance and how to use it Bob Brusa <bob.brusa@gmail.com> - 2013-02-15 20:40 +0100
Re: inheritance and how to use it Tony the Tiger <tony@tiger.invalid> - 2013-02-19 16:04 -0600
csiph-web