Hi. On Jan 2, 2008 6:36 PM, Alan Gauld <[EMAIL PROTECTED]> wrote:
> Can you modify the program *without modifying the classes* to use an > ordinary function as the callback? Say this goodbye function: > > def goodbye(): > print "goodbye world" > > This should not require more than 5 lines of new code and no changes > to the > existing code. It could be done in 3... > Like this?: class UserInput: def __init__(self): pass def test_callback(self, this_callback): print "testing the callback" this_callback() class Game: def __init__(self): self.ui = UserInput() def hello(self): print "hello world" def useUI(self): self.ui.test_callback(self.hello) def goodbye(): print "goodbye world" g = Game() g.useUI() g.ui.test_callback(goodbye) It took me a couple of minutes to understand your challenge. :-) Then I remembered that "ui" is instantiated inside "g" and therefore callable with the right parameter. Thank you very, very much. I enjoy a good challenge. -- 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.
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor