How do I set a callback in Python?

Diez B. Roggisch deets at nospam.web.de
Mon Sep 8 03:18:11 EDT 2008


catsclaw schrieb:
> I can't for the life of me figure out how to set a callback in
> Python.  I have a class, which wraps another class.  The second class
> needs a callback assigned.  I don't want to use globals for it.
> Here's what I'd like to do:
> 
> class MyWrapper:
>     def get_login(self, username):
>         return self.user, self.pass
> 
>     def __init__(self, user, pass):
>         self.user = user
>         self.pass = pass
> 
>         self.client = Client("connection string")
>         self.client.callback_login = get_login
> 
> ... but obviously, the Client class, when it calls the callback,
> doesn't pass a reference to the "self" object.  How do I do this?


Do self.get_login. The difference is that this creates a so-called 
"bound method". Google for that, and play around in the interpreter with 
an object and references to it's methods, either through the class or 
the instance to see the difference.

Diez



More information about the Python-list mailing list