[EMAIL PROTECTED] 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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to