2011-07-30 2 views
1

Salut tout le monde c'est probablement quelque chose d'extrêmement simple que je ne sais pas mais quelqu'un peut me pointer dans la bonne direction pour savoir comment gérer ce problème. Fondamentalement, ce que j'essaye de faire est d'attraper les données passées à travers les arguments. Je suis juste coincé sur la syntaxe pour référencer les arguments à l'intérieur de la fonction lors de l'utilisation *args.accéder à * args à partir d'une fonction en Python

+0

Une règle d'or en Python est que les noms doivent venir de quelque part; ils ne sont pas magiquement insérés par la langue. (Une méthode d'instance se réfère à l'instance comme 'self' seulement parce que c'est le premier argument de la méthode - il n'y a pas de magie' this'. Un setter pour une propriété fait référence à la valeur qu'il définit comme argument - il n'y a pas de magic 'value' Si vous voulez utiliser une fonction dans un module' foo', vous devez importer 'foo' pour que l'interprète sache ce que c'est ... Etc.) – katrielalex

Répondre

7

args est simplement une liste:

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

Est-ce que vous voulez dire?

Notez qu'il n'y a rien de spécial à propos de "args". Vous pouvez utiliser n'importe quel nom de variable. C'est l'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) 

encore, "args" est le nom de la variable la plus idiomatiques; Je n'utiliserais rien d'autre sans une bonne raison qui serait évidente pour les autres.

+0

Bloody hell, je suis un idiot, pardon im encore en train de se faire python. C'est exactement ce que je cherchais, merci. J'accepte la réponse quand je peux. – SacredGeometry

1
def nodeFunction(self, arg1, arg2, *args) 

*arg dans la liste d'arguments signifie: passer les arguments remaning sous forme de liste dans la variable arg. Alors, vérifiez comment gérer list s. Remarque: l'index de la liste commence à 0.

Questions connexes