issue144:tutoriel1
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue144:tutoriel1 [2019/05/05 08:52] – d52fr | issue144: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 | + | En premier lieu, je voudrais féliciter Ronnie |
**Now on to the meat of this month' | **Now on to the meat of this month' | ||
Ligne 13: | Ligne 13: | ||
https:// | https:// | ||
- | 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 | + | Le 4 avril 2019, la PEP 570 (Python Enhancement |
Voici le lien vers la page officielle expliquant les modifications : https:// | Voici le lien vers la page officielle expliquant les modifications : https:// | ||
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, | **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, | ||
- | Note : L' | + | Note : L' |
**Some background | **Some background | ||
Ligne 39: | Ligne 39: | ||
Mise en situation | Mise en situation | ||
- | Actuellement, | + | Actuellement, |
def my_function(parm1=None, | def my_function(parm1=None, | ||
Ligne 45: | Ligne 45: | ||
... | ... | ||
- | et la plupart du temps, c'est suffisant pour la plupart | + | et, la plupart du temps, c'est suffisant pour la majorité |
- | *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' | + | 2) Si le / n'est pas spécifié dans la définition de fonction, cette fonction n' |
- | 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 | + | 4) Une fois qu'un paramètre à position fixe est spécifié |
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, | + | Pour vous montrer quelques-unes des ramifications de ces changements, |
- | 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, | ||
+ | … | ||
+ | |||
+ | C'est très proche de ce que nous utilisons actuellement, | ||
+ | |||
+ | def my_function(p1, | ||
+ | |||
+ | Cependant, si le paramètre « p1 » a une valeur par défaut, d' | ||
**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' | ||
+ | |||
+ | 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