2010-12-02 7 views
1

Je travaille avec un paquet python (MySQLdb). La méthode connect a beaucoup de paramètres de position, dont la plupart ont des valeurs par défaut, mais certaines ne sont pas faciles à déduire.Comment ne pas spécifier les paramètres par défaut dans python?

Comment puis-je uniquement spécifier les paramètres que je veux?

à savoir si une méthode de connexion a la signature suivante:

connect(username, password, socket, timeout) 

et socket a une valeur par défaut qui peut être dépendant du système

est-il possible d'invoquer avec quelque chose comme si je ne pas écraser la valeur par défaut pour socket:

connect('tom', 'passwd12', , 3) 

Répondre

5

Essayez ceci:

connect(username='tom', password='passwd12', timeout=3) 

Pour plus d'informations, veuillez consulter Using Optional and Named Arguments.

+0

http://mysql-python.sourceforge.net/MySQLdb.html#mysqldb semble suggérer que la plupart sont params de position, pas de mots-clés quoique – petraus

+0

@petraus: si vous lisez cette page vers le bas, vous verrez même code que posté dans les réponses. – SilentGhost

+0

merci pour le lien. J'ai raté ça quand j'ai lu le livre. – petraus

2

Il est préférable d'utiliser des arguments de mot-clé plutôt que des paramètres de position dans ce cas. Comme il est évident

connect ('tom', 'passwd12, None, 3) 

est beaucoup moins compréhensible que

connect (username = 'tom', 
     password = 'passwd12', 
     timeout = 3) 
1

la source MySQLdb-python dit ceci au sujet connecter:

« Il est fortement recommandé d'utiliser uniquement les paramètres clés. "

Questions connexes