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