Est-il considéré comme un mauvais style d'attribuer des valeurs à des variables de ce type ?
x = "foobar" or None
y = some_variable or None
Dans l'exemple ci-dessus, x prend la valeur 'foobar'.
Est-il considéré comme un mauvais style d'attribuer des valeurs à des variables de ce type ?
x = "foobar" or None
y = some_variable or None
Dans l'exemple ci-dessus, x prend la valeur 'foobar'.
Je ne suis pas non plus très à l'aise avec ce type d'expressions. Dans Learning Python 4ed, cela est appelé un "comportement quelque peu inhabituel". Plus loin, Mark Lutz dit :
...il s'avère que c'est un paradigme de codage assez commun en Python : pour Python : pour sélectionner un objet non vide parmi un ensemble de taille fixe dans une expression or. Sous une forme plus simple, cette méthode est également couramment utilisé pour désigner un objet par défaut...
En fait, ils produisent des expressions concises d'une ligne qui contribuent à éliminer le bruit de ligne du code.
Ce comportement est la base d'une forme de l'opérateur ternaire if/else :
A = Y if X else Z
La syntaxe de l'OP est parfaitement bien.
Le nom officiel de l'"affectation avec ou" est le suivant coalescence nulle et il y a maintenant une page Wikipedia à ce sujet ! https://en.wikipedia.org/wiki/Null_coalescing_operator
Cette question peut également être utile : Existe-t-il un équivalent en Python de l'opérateur null-coalescing en C# ?
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.