[Tutor] class and methods/functions
kent37 at tds.net
Thu Oct 6 20:05:12 CEST 2005
Eric Walker wrote:
> Where I think my problem maybe in how I am running this. I want to eventually
> run from the command line. I started python idle from my linux command line
> and I was cut and pasting from my text file and seeing things work. Now i
> want to run it from the command line and its complaining. in my file I have
> something of the following.
This is full of syntax errors...
> class yes:
> def func1
> temp = re.match #####
OK but not used for anything
> return str(tempREG != 'None'
Missing close paren and tempREG is not defined so you will get a NameError at runtime
> def display(self):
This should have the same indentation as def func1; indentation is significant!
> print all the class attributes....
> def __init__(self,value):
> name = func1(value)
probably you want self.func1(value) - to call a member function from inside another member function you have to prefix the name with self.
> other stuff
> def func2():
> a = yes()
> print "error"
Generic except: blocks like this are a bad idea, it hides useful information without providing any benefit. The traceback that Python prints on an uncaught exception may look like a lot of gibberish at first but it contains a wealth of useful information that is thrown away by this handler.
> On Thursday 06 October 2005 11:33 am, Kent Johnson wrote:
>>Eric Walker wrote:
>>>I have a class I am defining and then I call a function within that
>>>class. Getting error that function call is not defined. Does the function
>>>have to be created anywhere within a class or does it have to be defined
>>>before the call within the class.
>>Actual code and the error message (including the traceback) would be
>>Generally functions (usually called methods in this context) are defined
>>within the body of a class and then called from outside the class.
>>Functions have to be defined before they are called but not before they
>>Very simple example:
>> >>> class B:
>> ... def foo(self):
>> ... print 'foo'
>> ... self.bar()
>> ... def bar(self):
>> ... print 'bar'
>> >>> b=B()
>> >>> b.foo()
>>Tutor maillist - Tutor at python.org
> Tutor maillist - Tutor at python.org
More information about the Tutor