-3
votes

Que font les paramètres positionnels à Python 3.8?

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 commentaires

Avez-vous essayé de l'exécuter?


Vous pouvez lire PEP 570 pour une description complète, mais essentiellement les paramètres avant / ne peut pas être transmis par nom (par exemple, vous ne pouvez pas faire pow (x = 1, y = 2) ou pow (y = 2, z = 3, x = 1) ), 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.


3 Réponses :


0
votes

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) fonctionnera; pow (x = 1, y = 2, z = 3) ne sera pas.


0 commentaires

0
votes

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: xxx

vous ne pouvez l'appeler que comme pow (5, 3)


0 commentaires