Il existe quatre façons d'afficher les paramètres d'une fonction en Python :
1.F(arg1,arg2,…)
Il s'agit d'une manière courante de définir une fonction, et n'importe quel nombre de paramètres peut être défini. Utilisez des virgules pour séparer les paramètres. Lors de l'appel d'une fonction de ce type, vous devez fournir le même nombre de valeurs (arguments réels) entre parenthèses après le nom de la fonction, et dans le même ordre. En d'autres termes, dans cette méthode d'appel, le nombre de paramètres formels et de paramètres réels doit être cohérent et doit correspondre un à un, c'est-à-dire que le premier paramètre formel correspond au premier paramètre réel. Par exemple :
Le code est le suivant :
def a(x,y):imprimer x,y
Appelez cette fonction, si a(1,2), x prend 1, y prend 2, et les paramètres formels correspondent aux paramètres réels. Si a(1) ou a(1,2,3), une erreur sera. signalé.
2. F(arg1,arg2=valeur2,…)
Cette méthode est une version améliorée de la première méthode, fournissant des valeurs par défaut, par exemple :
Le code est le suivant :
def a(x,y=3):imprimer x,y
Lors de l'appel de cette fonction, a(1,2) prend toujours 1 pour x et 2 pour y, mais si a(1), aucune erreur ne sera signalée pour le moment, x vaut toujours 1 et y est 3 par défaut. Dans les deux méthodes ci-dessus, vous pouvez également modifier la position du paramètre. Par exemple, a(y=4,x=3) peut également être utilisé sous cette forme.
3.F(*arg1)
Les deux méthodes ci-dessus consistent à transmettre autant de paramètres réels qu'il y a de paramètres formels, mais parfois vous n'êtes pas sûr du nombre de paramètres, alors la troisième méthode est plus utile elle ajoute les paramètres formels avec un * Le nombre de. Les paramètres réels de cette fonction sont variables, qui peuvent être 0 ou n. Une chose à noter est que peu importe leur nombre, ils sont tous stockés dans des tuples avec des noms de paramètres formels comme identifiants à l'intérieur de la fonction.
Le code est le suivant :
def a(*x):imprimer x
>>> a(1,2,3)
(1, 2, 3)
>>> a(x=1,y=2,z=3)
Traceback (dernier appel le plus récent) :
Fichier """, ligne 1, dans TypeError : a() a obtenu un argument de mot-clé inattendu 'x' 4. F(**arg1) Ajoutez deux * devant le nom formel du paramètre pour indiquer que le paramètre sera stocké dans le nom formel à l'intérieur de la fonction Dans un dictionnaire qui est un identifiant, la méthode d'appel de la fonction doit être sous la forme arg1=value1, arg2=value2. Le code est le suivant : def a(**x):print x >>> a(x=1,y=2,z=3) {'y' : 2, 'x' : 1, 'z' : 3} # Stocké dans le dictionnaire >>> a(1,2,3) #Ce type d'appel signalera une erreur Traceback (dernier appel le plus récent) : Fichier """, ligne 1, dans TypeError : a() prend exactement 0 argument (3 donnés)
Pendant le développement, nous pouvons utiliser des plug-ins associés ou utiliser la fonction intégrée Python "help()" pour afficher la description des paramètres d'une certaine fonction. Prenons l'exemple de la fonction intégrée sorted() :
.Les paramètres de fonction incluent : les paramètres requis, les paramètres par défaut, les paramètres facultatifs et les paramètres de mots clés.
1. Paramètres par défaut : placée après les paramètres requis, la fonction pour calculer le carré de x :
Dans ce cas, vous devez réécrire la fonction à chaque fois que vous calculez une fonction de puissance différente, ce qui est très gênant. Vous pouvez utiliser le code suivant pour calculer :
.Le plus grand avantage des paramètres par défaut est de réduire la difficulté d'appeler des fonctions.
2. Paramètres variables : le nombre de paramètres transmis est variable. Il peut être 1, 2, ou n'importe quel nombre, ou 0. Ajoutez * devant les paramètres pour indiquer les paramètres variables. À l'intérieur de la fonction, les numéros de paramètres reçoivent un tuple Lors de l'appel de la fonction, n'importe quel nombre de paramètres peut être transmis, y compris 0 paramètre :
.Vous pouvez également assembler un dict similaire aux paramètres variables, puis convertir le dict en paramètres de mots-clés et le transmettre :
D'accord, je vais chercher ailleurs
Mais des points. . . .
Cela dépend de ce qui vient avec VC~
Suggérez un moyen de vérifier le nombre de paramètres, mais il est impossible de déterminer le type à moins de suivre attentivement chaque instruction
PROC lpFunction = GetProcAddress(hModule,"fucntion name");_asm{jmp lpFunction; tracez la fonction à partir d'ici}
La fonction devrait être (si c'est un appel standard écrit en C)
(Ne l'exécutez pas, quelque chose pourrait mal se passer, veuillez le lire lentement) push ebpmov ebp,esp
sub esp,XXX (multiple de 4)
ajouter esp,XXX
mov esp,ebppop ebpret XXXX (également un multiple de quatre)
Nombre de paramètres = XXXX/4
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!