[python] Ternarni operator (was: Re: round v python 3.0)
Vlada Macek
macek na sandbox.cz
Pondělí Únor 2 16:37:47 CET 2009
Jan Janech wrote:
> math.round = lambda num: math.floor(num+0.5) if num >= 0 else \
> -math.floor(-num+0.5)
Vida, dosud jsem nevedel, ze Python 2.5 zavedl ternarni operator.
Ve svych zdrojacich pouzivam formulaci
P and A or B
Nejcasteji pro vyber retezcu. Je to velmi strucne, citelne a
nevyhodnocuje zbyvajici argument.
Jen upozornuju, ze musite zajistit, ze A se nevyhodnoti jako False,
protoze jinak je vysledkem B. :-)
Narazil jsem jeste na jeden zajimavy trik:
(B, A)[bool(P)]
Trosku mene citelne, ale hlavne ma jiny efekt: Vyhodnocuje oba argumenty
a teprv pak vybira.
Tak pozor na to.
--
\//\/\
http://macek.sandbox.cz
http://www.easis.cz
------------- další část ---------------
A non-text attachment was scrubbed...
Name: macek.vcf
Type: text/x-vcard
Size: 517 bytes
Desc: [žádný popis není k dispozici]
URL: <http://www.py.cz/pipermail/python/attachments/20090202/191bfc31/attachment.vcf>
Další informace o konferenci Python