Ce qui est en dessous du code Python?
def pow(x, y, z=None, /):
r = x**y
if z is not None:
r %= z
return r
3 Réponses :
Vous ne pouvez pas spécifier la valeur d'un paramètre de position uniquement avec un argument de mots clés lorsque vous appelez la fonction. pow (1, 2, 3) code> fonctionnera; pow (x = 1, y = 2, z = 3) code> ne sera pas. p>
Il est assez bien décrit dans PEP-0570 . Si interdit d'utiliser des paramètres nommés pour les paramètres marqués comme Positionnels uniquement: vous ne pouvez l'appeler que comme pow (5, 3) p> p> p> p> p> p>
Il est déjà défini dans Paramètres de position uniquement A > Dans la documentation officielle à Python 3.8. P>
Il y a une nouvelle syntaxe (/) pour indiquer que certains paramètres de fonction doivent être spécifiés positionné (c'est-à-dire ne peuvent pas être utilisés comme arguments de mots clés). Il s'agit de la même notation que montrée par HELP () pour les fonctions mises en œuvre dans C (produit par l'outil "Clinique d'argument" de Larry Hastings "). Exemple: p>
Now Pow (2, 10) et POW (2, 10, 17) sont des appels valides, mais POW (X = 2, Y = 10) et POW (2, 10, Z = 17) sont invalides. p>
blockQuote>
voir PEP 570 pour une description complète. P>
Avez-vous essayé de l'exécuter?
Vous pouvez lire PEP 570 pour une description complète, mais essentiellement les paramètres avant
/ code> ne peut pas être transmis par nom (par exemple, vous ne pouvez pas fairepow (x = 1, y = 2) code> oupow (y = 2, z = 3, x = 1) code>), mais à la place, ils doivent être passés par la position, dans l'ordre spécifié par la signature.Il fait la même chose qu'une fonction ordinaire dans les versions antérieures. Cela vous empêche simplement d'appeler la fonction avec des paramètres dans un ordre différent.