[Tutor] Learning about callbaks
Michael Bernhard Arp Sørensen
michaelarpsorensen at stevnstrup.dk
Tue Jan 1 13:54:08 CET 2008
Greetings, my masters.
This is somewhat difficult to transfer to my program with 2 classes/objects.
All examples I've seen is not for more than one instance of a single object.
I use more than one class in my program.
I have a game class and a menu class. When the user chooses "quit" in the
menu, I want the menu object to call a method that executes a quit_program()
from the game class. Obviously, menu is an object within the game object.
class UserInput(CommonBase):
def __init__(self, queue, game):
self.loop = 1
self.queue = queue
self.game = game
def main(self):
while True:
tstr = raw_input("Input string: ")
print "Input: ", tstr
if tstr == "q":
self.quitProgram()
def quitProgram(self, game, quit_callback):
self.loop = 0
game.loop = 0
quit_callback()
class Game(CommonBase):
def __init__(self):
self.loop = 1
self.queue = Queue.Queue()
def startUI(self, tid):
ui = UserInput(self.queue, self)
ui.main()
def stoploop():
self.loop = 0
def main(self):
thread.start_new_thread(self.startUI, (1,))
while self.loop:
try:
data = self.queue.get(block = False)
except Queue.Empty:
pass
else:
pass
time.sleep(0.1)
g = Game()
g.main()
It is so frustrating not to see the light. I feel that I'm close to
understanding the general idea. Allthough I might be wrong on that point.
:-)
I'm desperate.
Thanks in advance.
On Dec 29, 2007 7:58 PM, Dave Kuhlman <dkuhlman at rexx.com> wrote:
> Here is a trivial example:
>
> def f1(x):
> print 'f1: %s' % x
>
> def f2(x):
> print 'f2: %s' % x
>
> def use_them(funcs):
> for func in funcs:
> func('abcd')
>
> def test():
> funcs = [f1, f2]
> use_them(funcs)
>
> test()
>
--
Med venlig hilsen/Kind regards
Michael B. Arp Sørensen
Programmør / BOFH
I am /root and if you see me laughing you better have a backup.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20080101/8e70a924/attachment.htm
More information about the Tutor
mailing list