Grzegorz Brzęczyszczykiewicz rašė:
>> Jep. Tiksliau priskyrimas negali būti ternary operanduose.
>
> ar tikrai?
>
> x=0
> print ("NOT ZERO") if x else print ("ZERO")
> y=2 if x else 0
> print(y)
Ternary operatorius:
condition ? true_expression : false_expression
Visi jo operandai python'e gali būti tik expression'ai, bet ne
statement'ai (kuo assignment ir yra):
https://peps.python.org/pep-0308/
Pati ternary išraiška gali būti – ir dažniausiai ir yra – (assignment)
statement'o dalis; čia problemų nėra:
x = "foo" if foo else "bar"
Bet visas ternary operatoriaus kūnas čia juk yra tik dešinioje pusėje:
x = (foo ? "foo" : "bar")
x = ("foo" if foo else "bar")
