Outils pour utilisateurs

Outils du site


issue144:tutoriel1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue144:tutoriel1 [2019/05/05 08:52] d52frissue144:tutoriel1 [2019/05/08 10:27] (Version actuelle) andre_domenech
Ligne 1: Ligne 1:
 **First, I would like to congratulate Ronnie and the entire FCM staff for 12 years of FCM! I am honoured to be a small part of this wonderful publication.** **First, I would like to congratulate Ronnie and the entire FCM staff for 12 years of FCM! I am honoured to be a small part of this wonderful publication.**
  
-En premier lieu, je voudrais féliciter Ronnie le toute l'équipe du FCM pour les douze ans de la revue ! Je suis honoré d'être une petite partie de cette publication.+En premier lieu, je voudrais féliciter Ronnie et toute l'équipe du FCM pour les douze ans de la revue ! Je suis honoré de jouer un petit rôle dans cette publication.
  
 **Now on to the meat of this month's article... **Now on to the meat of this month's article...
Ligne 13: Ligne 13:
 https://discuss.python.org/t/pep-570-python-positional-only-parameters/1078** https://discuss.python.org/t/pep-570-python-positional-only-parameters/1078**
  
-Maintenant, rentrons dans le vif du sujet de ce mois.+Maintenant, rentrons dans le vif du sujet du mois.
  
-Le 4 avril 2019, PEP 570 (Python Enhancement Propsal - Proposition d'amélioration de Python) a été accepté par le conseil de pilotage de Python, dont Guido van Rossum fait partie. Alors que personne ne savait dans quel délai il pourrait être implémenté, les modifications qu'il portait suggèraient que nous aurions tous à nous mettre à jour sur le sujet plus tôt que plus tard.+Le 4 avril 2019, la PEP 570 (Python Enhancement Proposal - Proposition d'amélioration de Python) a été acceptée par le conseil de pilotage de Python, dont Guido van Rossum fait partie. Alors que personne ne sait dans quel délai elle pourra être implémentée, les modifications qu'elle porte suggèrent que nous aurions tous à nous mettre à jour sur le sujet plus tôt que plus tard.
  
 Voici le lien vers la page officielle expliquant les modifications : https://www.python.org/dev/peps/pep-0570/#specification Voici le lien vers la page officielle expliquant les modifications : https://www.python.org/dev/peps/pep-0570/#specification
Ligne 25: Ligne 25:
 **Note: The information presented in this article is not meant to be an in-depth teaching article on Python programming using the PEP 570 syntax. It's intended to only give you a digested overview of what to expect, once it is implemented, and to encourage you to do more research into the subject on your own.** **Note: The information presented in this article is not meant to be an in-depth teaching article on Python programming using the PEP 570 syntax. It's intended to only give you a digested overview of what to expect, once it is implemented, and to encourage you to do more research into the subject on your own.**
  
-Note : L'information présentée dans cet article n'a pas pour objet d'être un article de formation approfondi sur la programmation en Python en utilisant la syntaxe de la PEP 570.  Il a simplement pour but de vous donner un aperçu digeste de ce à quoi s'attendre, une fois qu'elle est implémentée, et pour vous encourager à faire d'autres recherches par vous-même sur le sujet.+Note : L'information présentée dans cet article n'a pas pour objet d'être un article de formation approfondi sur la programmation en Python en utilisant la syntaxe de la PEP 570.  Il a simplement pour but de vous donner un aperçu pré-assimilé de ce à quoi s'attendre, une fois qu'elle est implémentée, et pour vous encourager à faire d'autres recherches par vous-même sur le sujet.
  
 **Some background **Some background
Ligne 39: Ligne 39:
 Mise en situation Mise en situation
  
-Actuellement, Python utilise ce qui est appelé des paramètres « positional-or-keyword » (à-position-fixe-ou-par-mot-clé). Quand nous définissons une fonction, comme nous le savons tous, nous le faisons comme ceci...+Actuellement, Python utilise ce qui sont appelés des paramètres « positional-or-keyword » (à-position-fixe-ou-par-mot-clé). Quand nous définissons une fonction, comme nous le savons tous, nous le faisons comme ceci...
  
 def my_function(parm1=None, parm2, *args, **kwds): def my_function(parm1=None, parm2, *args, **kwds):
Ligne 45: Ligne 45:
 ... ...
  
-et la plupart du temps, c'est suffisant pour la plupart des besoins. Cependant, si quelqu'un veut concevoir une bibliothèque, le nombre de paramètres, leur position et les noms de paramètres doivent rester identiques de publication en publication. Autrement, cela plantera tout logiciel qui l'appelle.+etla plupart du temps, c'est suffisant pour la majorité des besoins. Cependant, si quelqu'un veut concevoir une bibliothèque, le nombre de paramètres, leur position et les noms des paramètres doivent rester identiques de publication en publication. Autrement, cela plantera tout logiciel qui l'appelle.
  
-*The new syntax for function definitions would look like that shown above.+**The new syntax for function definitions would look like that shown above.
  
 Here are some important notes: Here are some important notes:
Ligne 63: Ligne 63:
  
 Voici quelques points importants : Voici quelques points importants :
-1) Tous les paramètres après le / sont traités comme « positional-only » (à position fixe) +1) Tous les paramètres après le / sont traités comme « positional-only » (à position fixe). 
-2) Si le / n'est pas spécifié dans la définition de fonction, cette fonction n'acceptera aucun argument à position fixe +2) Si le / n'est pas spécifié dans la définition de fonction, cette fonction n'acceptera aucun argument à position fixe. 
-3) La logique à propos des valeurs optionnelles pour les paramètres à position fixe reste identique à celle des paramètres « positional-or-keyword » +3) La logique à propos des valeurs optionnelles pour les paramètres à position fixe reste identique à celle des paramètres « positional-or-keyword ». 
-4) Une fois qu'un paramètre à position fixe est spécifiée avec une valeur par défaut, les paramètres à position fixe ET ceux « positional-or-keyword » doivent aussi avoir des valeurs par défaut.+4) Une fois qu'un paramètre à position fixe est spécifié avec une valeur par défaut, les paramètres à position fixe ET ceux « positional-or-keyword » doivent aussi avoir des valeurs par défaut.
 5) Les paramètres à position fixe qui n'ont pas de valeur par défaut sont des paramètres à position fixe EXIGÉS. 5) Les paramètres à position fixe qui n'ont pas de valeur par défaut sont des paramètres à position fixe EXIGÉS.
  
-Pour vous montrer quelques-unes des ramifications de ces changements, regardons comment nous pouvons accéder à une fonction avec ses nouvelles exigences. À nouveau, j'extrais les lignes suivantes de l'annonce du PEP...+Pour vous montrer quelques-unes des ramifications de ces changements, regardons comment nous pouvons accéder à une fonction avec ces nouvelles exigences. À nouveau, j'extrais les lignes suivantes de l'annonce de la PEP :
  
-Si vous n'avez que des arguments à position fixe, vous devriez utiliser une définition comme celle-ci...+Si vous n'avez que des arguments à position fixe, vous devriez utiliser une définition comme celle-ci :
  
  
Ligne 83: Ligne 83:
  
 However, if the parameter for “p1” has a default value, per condition #4, ‘p2’ would also need to have a default value assigned as well. So,** However, if the parameter for “p1” has a default value, per condition #4, ‘p2’ would also need to have a default value assigned as well. So,**
 +
 +def my_function(p1, p2, /):
 +    …
 +
 +C'est très proche de ce que nous utilisons actuellement, à l'exception des caractères « , / ». La première condition ci-dessus est satisfaite. Selon la condition 2, dans ce cas, le « / » doit être inclus ; sinon cela provoquera une erreur de syntaxe. L'exemple suivant montre un paramètre à position fixe dans une fonction où le second paramètre a une valeur par défaut égale à « None ». Ceci s'accorde avec la condition 3 ci-dessus.
 +
 +def my_function(p1, p2 = None, /):
 +
 +Cependant, si le paramètre « p1 » a une valeur par défaut, d'après la condition n° 4, « p2 » doit aussi avoir une valeur par défaut. Ainsi,
  
 **def my_function(p1 = None, p2, /): **def my_function(p1 = None, p2, /):
Ligne 103: Ligne 112:
 That’s all I have this time, so I wish you a great upcoming month. ** That’s all I have this time, so I wish you a great upcoming month. **
  
 +def my_function(p1 = None, p2, /):
 +
 +entraînerait une erreur de syntaxe.
 +
 +def my_function(p1 = None, p2 = None, /, p_or_kw):
 +    …
 +
 +sera aussi invalide, car la condition n° 4 ci-dessus dit qu'une fois qu'une valeur par défaut a été définie pour un paramètre, tous les paramètres qui suivent, y compris les paramètres à position fixe ou ceux « positional-or-keyword », doivent aussi avoir une valeur par défaut. Ceci ne s'applique cependant pas aux paramètres « keyword_only » (seulement comme mot-clé). La déclaration suivante :
 +
 +def my_function(p1 = None, p2 = None, /, *, kw):
 +
 +sera parfaitement valable et bonne.
 +
 +Un dernier emprunt au document de spécification est présenté en haut à droite.
 +
 +C'est tout ce que j'ai pour cette fois-ci et je vous souhaite un excellent mois à venir.
issue144/tutoriel1.1557039143.txt.gz · Dernière modification : 2019/05/05 08:52 de d52fr