Není to prasárna, jen se na to podívej abstraktněji:
To není o abstraktnosti.
promenna = (podminka) ? datovy_typ1 : datovy_typ2
Na tom přece nic špatného není. Třeba když datovy_typ2 je None. Nebo ty datové typy jsou muz a zena, nebo html a pdf,
A proč je muž == true a žena == false? A pokud je html true a pdf false, co je json?
Takový problém se správně řeší pravidlem:
podminka = žena
promenna = is_default(podminka) ? datovy_typ1 : datovy_typ2
Předpoklad, že to jazyk nějak skvěle rozhodne za mě, není projev flexibilnosti.
Je, ale mimo tvé chápání :-).
Proč je muž v příkladu true? To je přece jedno, ale když to nedokážeš vnímat na abstraktní rovině, tak třeba proto, že to zatrhl na formuláři.
Ad is_default(), opět marginální, podstatné je, že se ti vrací jeden nebo druhý datový typ, o to teď v diskusi běží.
Myslím že tu ukázku vůbec nechápeš, program za tebe nic nerozhoduje, program rozhoduje podle podmínky zadané programátorem.
Napsal jsi toho hodně, ale vůbec nic k věci, tedy k vrácení dvou různých datových typů z podmínky. Škoda.