[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
