Formation gratuite Python
- 10 meilleurs plugins pour gérer un multisite WordPress
- Utiliser Pylance pour écrire mieux Python dans Visual Studio Code – Le vrai podcast Python
- Sécurité et autorisation dans vos applications Web Python – Le vrai podcast Python
- Épisode 98: Ajouter de la simultanéité à Django avec les canaux Django
- Exceptions KeyError Python et comment les gérer – Real Python
Je ne dirais pas que CoffeeScript est foutu – c’est juste la conséquence de permettre la construction if-the-else en tant qu’expression. Scala le permet aussi comme Ruby (bien que Ruby ait aussi le test? True_v: false_v expression – mais Ruby évalue également tout comme vrai, sauf que néant et faux – y compris les collections 0, 0,0 et vides – vous voulez l'uniformité?).
Étant donné le manque de sémantique nouvelle, il est évident pour un programmeur débutant ce qui se passe, bien que cela permette la possibilité de cauchemars imbriqués si-alors- (si-alors-sinon) -else- (si-alors-sinon) . Dans le passé, un programmeur est venu me voir et m'a dit: «Je ne sais pas ce que cela veut dire!» Quand je suis confronté à l'opération ternaire de style C, mais c'était avant la diffusion généralisée d'Internet. Et certains gestionnaires que je connais se sont montrés apoplectiques face à l’utilisation de l’opération cernaire au point de l’interdire complètement dans les normes de codage – mais en général parce qu’on pouvait en abuser de la même manière qu’autre chose.
Je suppose que BDFL ne voulait pas introduire de nouveaux termes dans la syntaxe du langage – si et autre étaient déjà là, tout en évitant les écueils de test et not_always_true_value ou default_value. Vous devez également être fou pour abuser de la syntaxe, qui, bien que maladroite, supprime en quelque sorte les abus suivants, même chez les programmeurs les plus obsédés par les opérateurs.
####
depuis itertools import combinaisons_with_replacement en tant que cwr
def foo (a, b, c):
retourne (1 si b sinon 2) si a autre (3 si c sinon 4) # ugh
pour t in cwr ((False, True), 3):
affiche le format “foo : -> ” (t, foo (* t))
####
Ça marche! Mais cela introduit un certain degré d'autodiscipline. Mais vous le verriez beaucoup plus si BDFL avait permis:
#### ne fonctionnera pas
def foo (a, b, c):
retourner un? (b? 1: 2): (c? 3: 4) # Je connaissais pas mal de gens qui aimaient faire ça
####
ou même
#### ne fonctionnera pas non plus
def foo (a, b, c):
retourne si a: (si b: 1 sinon: 2) sinon: (si c: 3 sinon: 4) # détruit probablement l'analyseur !!!
####
Et c’est ce dont il parlait dans une langue qui insistait tout d’abord sur l’indentation.
[ad_2]