Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: inheritance and how to use it

Reply
Thread Tools

Re: inheritance and how to use it

 
 
Bob Brusa
Guest
Posts: n/a
 
      02-15-2013
Am 15.02.2013 18:11, schrieb Dave Angel:
> On 02/15/2013 11:59 AM, Bob Brusa wrote:
>> 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). 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()
>>
>> How can I integrate this call into the definition of myClass? Thanks
>> for advice.
>> Bob
>>
>>
>>

>
> By initialize, I'll assume you want this code to execute when your class
> is instantiated. The way to do that is with a method called __init__().
> Notice the double underscore at begin and end.
>
> class myClass(SerialInstrument):
> def __init__(self):
> self.val1 = 42
> self.val2 = 31
> #... also initialize the base class
> self.clear()
>
> def f1(self, str1, str2):
> ....
>
> You should also call the __init__() method of the base class. But I
> don't know whether you're using Python2 or Python3, so I won't write
> that call
>
> This is without knowing anything about your base class, so there may be
> many other adjustments to be made.
>
>
>
>

I defined (which should clear visa-buffers when instantiating the class):

class myvisa(visa.SerialInstrument):
def __init__ (self):
self.clear()

def io (self, printstr, askstr):
....cut
when I run (python 2.7) a program using this class I get this:

C:\Projekte\TDSsw\mypython>python chk_clear_1.py
Traceback (most recent call last):
File "chk_clear_1.py", line 8, in <module>
from myvisa import *
File "C:\Projekte\TDSsw\mypython\myvisa.py", line 15, in <module>
class myvisa(visa.SerialInstrument):
File "C:\Projekte\TDSsw\mypython\myvisa.py", line 121, in myvisa
visa.Instrument.clear()
TypeError: unbound method clear() must be called with Instrument
instance as first argument (got nothing instead)

would it help to define instead:

class myvisa(visa.SerialInstrument):
def __init__ (self):
x = SerialInstrument(self)
x.clear() #and then forget about this x?

def io (self, printstr, askstr):
....cut




 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
inheritance, multiple inheritance and the weaklist and instance dictionaries Rouslan Korneychuk Python 8 02-10-2011 04:02 AM
Builtn super() function. How to use it with multiple inheritance? Andwhy should I use it at all? Lacrima Python 43 08-02-2010 09:28 PM
Private Inheritance and Publice Inheritance karthikbalaguru C++ 9 09-10-2007 01:05 PM
Private access modifier and Inheritance (Inheritance implementation in Java) maxw_cc Java 1 12-21-2003 11:38 AM



Advertisments