Simple Python class questions

Lie Lie.1296 at gmail.com
Thu Jun 19 14:22:11 CEST 2008


On Jun 19, 6:54 pm, John Dann <n... at prodata.co.uk> wrote:
> A Python newbie, but some basic understanding of how classes, objects
> etc work in eg VB.Net. However, I'm struggling a little to translate
> this knowledge into the Python context.
>
> I'm trying to teach myself this aspect of Python by working up a trial
> project, part of which calls for pulling in data from a serial data
> connection at regular intervals. It looked sensible to place all the
> comms procedures/functions in their own class and module and make
> calls to those functions from an object instantiated in a main
> controlling module. But I'm struggling to get this working - not sure
> whether it's a fundamental misunderstanding of the use of classes in
> Python, syntax errors pure and simple or, most likely, a combination
> of both!
>
> Maybe I could provide some outline code as an illustration:
>
> Let's say I define the class in a module called comms.py. The class
> isn't really going to inherit from any other class (except presumably
> in the most primitive base-class sense, which is presumably automatic
> and implicit in using the class keyword). Let's call the class
> serial_link. So in comms.py I have:
>
> class serial_link:
>         def __init__(self):
>                 Try
>                         Import serial # the pyserial library
>                 Except ImportException
>                         #Error handling
>
>         def openPort(self):
>                 Try
>                         #Code to try opening serial port
>                         Return "Success"
>                 Except SerialException
>                         Return "Failure"
>
> Then in my separate main calling module I might have:
>
> Import comms
> serlink=comms.seral_link     #Create instance of serial_link class
> print serlink.openPort
>
> The last line I'm hoping would print Success or Failure. But I just
> seem to get some internal reference to the openPort function enclosed
> in <>.
>
> So why doesn't it work please? I may be making multiple errors here
> but as far as I can see the syntax seems right. For this particular
> example, I don't need to pass any arguments from the
> 'seriallink.openPort' function so haven't included any parentheses (or
> are they mandatory even if empty?) I could go on with the explanations
> etc, but it may be simplest to see if anyone can spot a howler
> straight out.

Yes they're mandatory even if there is no arguments, this is needed so
python can differentiate between calling function and passing function
objects.

> TIA for anyone willing to help




More information about the Python-list mailing list