2010-12-06 6 views
1

J'utilise pycurl avec la ligne suivante pour appeler une fonction avec les données de la connexion:rappel pycurl WRITEFUNCTION avec des paramètres

conn.setopt(pycurl.WRITEFUNCTION, on_receive) 

est là de toute façon je peux passer plus de paramètres à on_receive fonction, tels que:

conn.setopt(pycurl.WRITEFUNCTION, on_receive, parameter_1, parameter_2) 

Merci,

Joel

Répondre

3

Le seul moyen simple que je connaisse serait d'avoir une fonction de tremplin distincte pour appeler votre fonction réelle avec les paramètres supplémentaires. Une fonction lambda ou un pointeur de fonction en d'autres termes, si les paramètres peuvent être constants.

connn.setopt(pycurl.WRITEFUNCTION, lambda data: real_impl(data, param1, param2)) 
+4

-il des données 'lambda, p1 = param1, p2 = param2: real_impl (données, p1, p2))' pour éviter les bugs comme: http://stackoverflow.com/q/139819/4279 – jfs