On Jun 19, 6:54 pm, John Dann <[EMAIL PROTECTED]> 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 -- http://mail.python.org/mailman/listinfo/python-list