-
quesako: *arg et **kw ?
Bonjours,
je développe actuellement une application (enfin, développer, c'est un grand mot) et je souhaite integrer un petit morceau de code que je n'ai pas écrit moi-même. Il provient d'un module (tkSnack) que j'utilise. Or, dans cette petite classe, on ne peut l'appeler qu'avec les arguments *arg et **kw. Mais je ne trouve nulle part la définition de ces variables dans le programme.
Par contre, je recontre ces arguments dans le code de Tkinter. Ma classe ne peut s'en passer.
Que signifient ils ? comment puis-je integrer ce morceau de programme à mon code ?
merci
-
erratum
j'ai trouvé tout seul ! c'était une simple bêtise d'appel. Enfin, je ne sais toujours pas ce que cela signifie, mais ca marche...
-
Code:
def fonc(p, *lp, **dp): ...
p est un paramètre simple
*lp est une liste
**dp est un dictionnaire
*lp et **dp permet de créer des fonctions ou les paramètres d'appels ne sont pas entièrement défini:
*lp signifie que l'on peut ajouter autant de paramètre (sans les nommer) que l'on veut
**lp signifie que l'on peut ajouter autant de paramètre (en les nommant) que l'on veut
exemple
en appelant: fonc(4, 'k1', 3, param1 = 5, param2 = 'k2'), la fonction va récupérer comme paramètre p=4, lp = ['k1', 3] et dp = {'param1' = 5, 'param2' = 'k2}
Comme on ne peut pas créer plusieurs fonctions ayant le même nom avec un nombre différents de paramètres, on utilise ce type d'argument pour faire la même chose.