Ciao a tutti!
Vorrei sapere la vostra opinione su questo argomento:
perchè in Python non esiste l'operatore ternario "? :" ?
Per intenderci l'operatore ternario è un operatore condizionale:
Se questa condizione è vera ? RitornaQuesto : AltrimentiQuestoSo bene che può essere simulato in questo modo:
>>> True and Valore1 or Valore2
>>>Valore1
o
>>> False and Valore1 or Valore2
>>> Valore2
Generalizzando si avrebbe:
[ValoreSeTrue, ValoreSeFalse][bool(Condizione)-1]
Però dico: perchè non l'operatore ternario famoso in C e C++ ?
A quanto pare una risposta viene dal
PEP 308:
Molti linguaggi derivati dal C usano la sintassi:
<condition> ? <expression1> : <expression2>
Eric Raymond l'ha anche implementato. Il BDFL l'ha rifiutato per
alcune ragioni: i due punti sono già usati molto in Python ( anche
se non è davvero ambiguo, perchè il punto interrogativo richiede
i due punti corrispondenti); inoltre per chi non ha usato linguaggi derivati dal C
è di difficile comprensione.
Condividete l'idea di G. Van Rossum?
O sentite la mancanza dell'operatore ternario?
