Eric Brunson wrote: > Ara Kooser wrote: >> Hello, >> I read Alan Gauld's and How to Think Like a Computer Scientist >> section on classes. So I tried to write a simple room class. My goal >> is to write a short text adventure using classes. Here is the code: >> >> class Area: >> def _init_(self, name, description): >> > > Not enough underscores, you need two before and after the word "init". > >> self.name = name >> >> >> def look(here): >> "Look around the place you are in" >> print here.description >> >> >> outside1 = Area("Outside") >> outside1.description = "You are standing outside with the town gate to >> your back" >> > > Why not: > > outside1 = Area( "Outside", "You are standing outside..." ) > > and store self.description in the constructor?
To do that you'll need the line : self.description = description right after the line assigning name to self.name. > > > >> self.contents.append("dirt") >> > > What is self? You've only defined self in the class methods and you're > outside the class definition. Was that just a cut and paste error? > >> look(bedroom) >> > > You'll get another error here, I think you want: outside1.look( bedroom ) But bedroom MUST be created before that. > >> I get the following error. >> Traceback (most recent call last): >> File "/Users/ara/Documents/text_advent.py", line 11, in <module> >> outside1 = Area("Outside") >> TypeError: this constructor takes no arguments >> >> Do the outside1 = Area("Outside) need to be nested in the class or can >> they be outside of it? >> > > No, that's correct, because you are instantiating the class and naming > that instance "outside1". > >> Thank you. >> >> Ara >> >> >> >> > > Hope that all helps, > e. > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor