10 votes

accès aux *args à l'intérieur d'une fonction en Python

Bonjour à tous, il s'agit probablement de quelque chose d'extrêmement simple que je néglige, mais quelqu'un peut-il m'indiquer la bonne direction à suivre pour résoudre ce problème ?

def nodeFunction(self,*args):
    return self[1] + self[2]    

En fait, ce que j'essaie de faire, c'est de récupérer les données transmises par les arguments. Je suis juste bloqué sur la syntaxe pour référencer les arguments à l'intérieur de la fonction lors de l'utilisation de la fonction *args .

20voto

senderle Points 41607

args est simplement un tuple :

def nodeMethod(self, *args):
    return args[0], args[1]

C'est ce que vous voulez dire ?

Notez que "args" n'a rien de spécial. Vous pourriez utiliser n'importe quel nom de variable. C'est le * opérateur qui compte.

>>> class Node(object):
...     def nodeMethod(self, *cornucopia):
...         return cornucopia[0], cornucopia[1]
... 
>>> n = Node()
>>> n.nodeMethod(1, 2, 3)
(1, 2)

Pourtant, "args" est le nom de variable le plus idiomatique ; je n'utiliserais pas autre chose sans une bonne raison qui serait évidente pour les autres.

5voto

Karoly Horvath Points 45145
def nodeFunction(self, arg1, arg2, *args)

*arg dans la liste d'arguments signifie : passer les arguments restants comme une liste dans la variable arg . Vérifiez donc comment gérer liste s. Note : l'index de la liste commence à partir de 0 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X