> Thank you for the response! I next modified the __str__ so it will also
> include the values self. boredom and self. hunger. I am getting a bit
> confused with how to set up strings from within a method. It is set up like
> this:
>
>     def __str__(self):
>         attrs = "Hunger: ", self.hunger, "Boredom: ", self.boredom, "Mood:
> ", self.boredom + self.hunger
>         return attrs
>
> When I try to execute I get this:
>
> Traceback (most recent call last):
>   File "C:\Users\Vincent\Documents\Programming Tutorials\Python Programming
> for the Absolute Beginner - Project
> Files\source\chapter08\critter_caretaker_vpb3.py", line 105, in <module>
>     main()
>   File "C:\Users\Vincent\Documents\Programming Tutorials\Python Programming
> for the Absolute Beginner - Project
> Files\source\chapter08\critter_caretaker_vpb3.py", line 99, in main
>     print(crit)
> TypeError: __str__ returned non-string (type tuple)

The print statement (at least in 2.7) accepts arguments separated by
commas, but ordinary assignment gives a different result:

>>> a = "str", "ing"
>>> a
('str', 'ing')

So, you probably want something like:

attrs = "Hunger: %s Boredom: %s Mood: %s" % (self.hunger,
self.boredom, self.boredom + self.hunger)
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to