Now I get an error: NameError: global name 'self' is not define. Tonu
On Mon, Feb 6, 2012 at 10:19 AM, Nate Lastname <defens...@gmail.com> wrote: > Hey Tonu, > > The problem is that in your statement definition, you are not > including the self argument. Your definition needs to be something > like: > def dolt(self): > # Do stuff. > For more info on the self keyword, see > http://docs.python.org/tutorial/classes.html, section 9.3.2. > > On 2/6/12, Tonu Mikk <tm...@umn.edu> wrote: > > Alan, thanks for explaining about passing objects to classes. This is an > > important concept for me to understand. > > > > I tried running the code, but run into an error that I could not resolve: > > > > TypeError: doIt() takes no arguments (1 given). > > > > Tonu > > > > On Thu, Feb 2, 2012 at 7:09 PM, Alan Gauld <alan.ga...@btinternet.com > >wrote: > > > >> On 02/02/12 17:36, Tonu Mikk wrote: > >> > >> So far I have searched for info on how to pass variables from one class > >>> to another and have been able to create a small two class program > >>> (attached). But I seem unable to generalize from here and apply this > >>> to the game exercise. What would you suggest for me to try next? > >>> > >> > >> Remember that OOP is about creating objects from classes. > >> You can pass an object to another rather than just the > >> variables, in fact its preferable! > >> > >> Also remember that you can create many objects from one class. > >> So just because you have one Room class doesn't mean you are > >> stuck with one room object. You can have many and each can > >> be connected to another. > >> > >> You can get rooms to describe themselves, you can enter a room. > >> You might even be able to create new rooms or destroy existing ones. > These > >> actions can all be methods of your Room class. > >> > >> Here is an example somewhat like yours that passes objects: > >> > >> class Printer: > >> def __init__(self,number=0): > >> self.value = number > >> def sayIt(self): > >> print self.value > >> > >> class MyApp: > >> def __init__(self, aPrinter = None): > >> if aPrinter == None: # if no object passed create one > >> aPrinter = Printer() > >> self.obj = aPrinter # assign object > >> def doIt() > >> self.obj.sayIt() # use object > >> > >> def test() > >> p = Printer(42) > >> a1 MyApp() > >> a2 = MyApp(p) # pass p object into a2 > >> a1.doIt() # prints default value = 0 > >> a2.doIt() # prints 42, the value of p > >> > >> test() > >> > >> HTH, > >> > >> -- > >> Alan G > >> Author of the Learn to Program web site > >> http://www.alan-g.me.uk/ > >> > >> > >> ______________________________**_________________ > >> Tutor maillist - Tutor@python.org > >> To unsubscribe or change subscription options: > >> http://mail.python.org/**mailman/listinfo/tutor< > http://mail.python.org/mailman/listinfo/tutor> > >> > > > > > > > > -- > > Tonu Mikk > > Disability Services, Office for Equity and Diversity > > 612 625-3307 > > tm...@umn.edu > > > > > -- > My Blog - Defenestration Coding > > http://defenestrationcoding.wordpress.com/ > -- Tonu Mikk Disability Services, Office for Equity and Diversity 612 625-3307 tm...@umn.edu
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor