[Tutor] class and methods/functions

Kent Johnson kent37 at tds.net
Thu Oct 6 20:05:12 CEST 2005

Eric Walker wrote:
> Kent,
> 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
should be 
  def func1(self):

>   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()
> try:
>  func2()
> except:
>  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
>>helpful here.
>>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
>>are referenced.
>>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
> http://mail.python.org/mailman/listinfo/tutor

More information about the Tutor mailing list