Michael Sullivan wrote: > Here is my code: > > #!/usr/bin/env python > > import random > import time > import math > > class LinePuzzlePiece: > """This class defines a single playing piece for LinePuzzle""" > def __init__(self): > seed(time) > index = int(math.floor(uniform(1, 10))) colorlist = ["red", > "blue", "green" "yellow", "purple"] self.color = colorlist[index] > > def printcolor(): > print self.color > > mypiece = LinePuzzlePiece > mypiece.printcolor > > > I saved the script and made it chmod +x. However, when I run it, I get > this: > > [EMAIL PROTECTED] ~ $ ./linepuzzle.py > [EMAIL PROTECTED] ~ $ > > Now, I'm no expert, but I really think something should have been > printed, if even a blank line. What am I doing wrong here? Why is > nothing printing? Is my printcolor method even being called > successfully?
No, you have not created a LinePuzzlePiece or called printcolor. In Python, parentheses are required for function calls. A class or function name without the parentheses is a reference to the class or function object itself, not a call to the object. This can be very useful but it's not what you want! mypiece = LinePuzzlePiece # This makes mypiece refer to the class, not an instace mypiece.printcolor # This is a reference to a method of the class, but you don't do anything with the reference What you really want: mypiece = LinePuzzlePiece() mypiece.printcolor() Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor