Continually check object status

futileissue at gmail.com futileissue at gmail.com
Sat Aug 2 13:53:43 EDT 2008


On Aug 2, 1:05 pm, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> futileis... at gmail.com schrieb:
>
>
>
> > Beginner, so please bare with me.  I'm not sure what to call what it
> > is I'm looking for.
>
> > If I have an object class, let's call it "Creature":
>
> > class Creature:
> >     def __init__(self, status):
> >         self.status = "happy"
>
> >     def change_status(self, new_status):
> >         self.status = new_status
>
> >     def print_status(self):
> >         print self.status
>
> > I would like to be able to print out the Creature's status every 20
> > seconds.  Let's say I use a script like this:
>
> > import time
> > while True:
> >     time.sleep(20)
> >     Creature.print_status()
>
> > But, while cycling through printing the status, I would like to be
> > able to update Creature.status to something new.
>
> > I might be approaching this from the wrong direction entirely.  Thanks
> > for your input.
>
> The "simple", yet possibly dangerous answer is: you need
> multi-threading. Multi-threading is a technique that allows several
> (quasi)-parallel paths of execution whilst sharing memory and objects
> inside that memory. The module in python to achieve this is called
> "threading".
>
> However, concurrent programming is a very advanced topic, ridded with
> pitfalls for even experienced developers.
>
> There are other ways to solve the problem, commonly known as event-loops
> and timers. These are usually part of frameworks for e.g GUI-creation an
> such, but you can also roll your own if you like.
>
> So, the better answer might be a question: what do you ultimately want
> to achieve? Given the name of your class, Creature, I assume you are
> writing on some game or such. Depending on how you plan to do that, you
> might have a framwork providing you with the needed tools/library calls
> or whatever.
>
> Diez

I was afraid that someone was going to mention threading.  I have read
about it before but not been able to do much with it.

My ultimate goal is to create some sort of tamagotchi style virtual
pet to interact with.  Over time it gets hungry or bored, but the
process can be fixed by a user "feeding" or "playing with" it.  I
wanted to take this opportunity to teach myself some PyGTK coding as
well, but I thought that maybe I could build the creature object and
looping in such a way that it would be possible to add a GUI to it
later.



More information about the Python-list mailing list