[Tutor] Bound To Be A Typo
Michael H. Goldwasser
goldwamh at slu.edu
Mon Dec 17 21:27:41 CET 2007
You've inadvertently used three underscores around __init__ rather
than two, and therefore you are not really defining __init__ but
instead are relying upon the inherited one from object (which takes no
parameters).
With regard,
Michael
On Monday December 17, 2007, earlylight publishing wrote:
> Okay I copied this code directly from a book (author Michael Dawson) and it's not working. I'm sure I've missed something obvious like the spacing or something but I've been staring at it for 10 minutes and I can't see it. I'll put the code and error message below. Can someone else spot the problem?
>
> class Critter(object):
> """A virtual pet"""
> def ___init___(self, name):
> print "A new critter has been born!"
> self.name = name
>
> def __str__(self):
> rep = "Critter object\n"
> rep += "name: " + self.name + "\n"
> return rep
>
> def talk(self):
> print "Hi, I'm", self.name, "\n"
> #main
> crit1 = Critter("Poochie")
> crit1.talk()
>
> Here's the error message:
>
> Traceback (most recent call last):
> File "C:/Python25/attributecrit.py", line 15, in <module>
> crit1 = Critter("Poochie")
> TypeError: default __new__ takes no parameters
More information about the Tutor
mailing list