def__invert__(self):"""~chifumi returns value in [1, 2, 3]"""return(self.chifumi%3)or3
Si je comprends bien, ça fait de ~ une opération pour récupérer la valeur normalisée. Bien joué le (valeur % 3) or 3, c'est bien plus lisible que (valeur - 1) % 3 + 1.
Je suis plus inférieur à un autre si la valeur qui me vainc est la même que la valeur normalisée de l'autre. Et mutatis mutandis pour la supériorité. Tu aurais pu utiliser functool.total_ordering().
Ensuite, le reste est assez simple à comprendre, une fois ces bases posées. La réutilisation des opérateurs est... intéressante. Je ne peux pas dire que je suis fan, c'est un peu bizarre à lire quand même.
[^] # Re: En Python bref
Posté par 🚲 Tanguy Ortolo (site web personnel) . En réponse au message Avent du Code, jour 2. Évalué à 3. Dernière modification le 07 décembre 2022 à 14:52.
Waouh. C'est pour le moins original ça.
Si je comprends bien, ça fait de
~une opération pour récupérer la valeur normalisée. Bien joué le(valeur % 3) or 3, c'est bien plus lisible que(valeur - 1) % 3 + 1.La valeur qui me vainc et la valeur que je vaincs, si je ne m'abuse.
Je suis plus inférieur à un autre si la valeur qui me vainc est la même que la valeur normalisée de l'autre. Et mutatis mutandis pour la supériorité. Tu aurais pu utiliser functool.total_ordering().
Ensuite, le reste est assez simple à comprendre, une fois ces bases posées. La réutilisation des opérateurs est... intéressante. Je ne peux pas dire que je suis fan, c'est un peu bizarre à lire quand même.
Tiens, j'ignorais la possibilité d'instancier un dictionnaire avec des mots-clefs. C'est amusant, ça aussi.