10
votes

Longueur des arguments de la fonction Python?

Duplicaté possible:

Comment découvrir la monnaie d'une méthode Python

Par exemple, j'ai déclaré une fonction: xxx

Je veux avoir la longueur des arguments de la fonction "somme".
Somethig comme ceci: Certain_function (somme) à retourner 3
Comment peut-on être fait en python?

MISE À JOUR:

J'ai posé cette question parce que je veux écrire une fonction qui accepte une autre fonction en tant que paramètre et argument pour le transmettre. xxx

et je dois valider: < Pré> xxx


4 commentaires

Vous pouvez voir le code source, ne pouvez-vous pas? C'est évidemment 3. Que devez-vous savoir de plus?


Pourquoi n'essayez-vous pas de passer * args et de retourner retour len (args) ou retour len (filtre (aucun, args) !! !


Parce que je veux écrire une fonction qui accepte une autre fonction en tant que paramètre et argument pour le transmettre. Def Funct (un autreFunct, ** args): Et je dois valider: si (len (args)! = autrefact.func_code.co_argcount): retour "Erreur"


Veuillez Mettre à jour Votre question pour inclure toutes les informations de base.


3 Réponses :


3
votes
import inspect

print len(inspect.getargspec(sum)[0])

0 commentaires

14
votes

Le module est votre ami; spécifiquement inspect.getargspec qui vous donne des informations sur les arguments d'une fonction: xxx

argscec contient également des détails sur les arguments facultatifs et les arguments de mots clés, qui Dans votre cas, vous n'avez pas, mais cela vaut la peine de savoir: xxx


0 commentaires

5
votes

Si votre nom de méthode est somme alors sum.func_code.co_argcount vous donnera le nombre d'arguments.


1 commentaires

Quels descentes sont là à utiliser cette méthode? Compte tenu des autres réponses que je suppose en utilisant inspecter est la manière préférée. Pourquoi est-ce?