May 27 2011

Тернарен-if в Python

Category: DevLucho @ 01:02

Както сигурно знаете, в Python писането на тернарен условен преход ternary-if е доста дълъг процес


<cmd A> if <condition> else <cmd B>

докато във всички останали езици обикновено е


<condition> ? <cmd A> : <cmd B>

Това несъмнено е по-грозен и труден за четене начин, но всички са му свикнали – условие, първа команда, втора команда.

Наскоро видях един друг похват използван в два различни плъгина за Django (единият беше south, другият не помня).


<condition> and <cmd A> or <cmd B>

В първите 2 минути като видях този начин на изписване бях доста учуден. Вероятно всеки би бил и вероятно този запис е в пъти по-нечетим от стандартния тернарен-if, но въпреки всичко се доближава повече до обикновения тернарен оператор и сигурно е по-лесен за възприемане от хора с опит в други езици.

Tags: ,

3 Responses to “Тернарен-if в Python”

  1. Стефан Кънев says:

    Малко trivia:

    Тая гнусотия с and/or я писахме по-рано, когато нямаше тернарен if. Той се появи в Python 2.5. Има PEP по въпроса.

  2. Стефан Кънев says:

    Хм. Ето втори опит:

    Тая гнусотия с and/or я писахме по-рано, когато нямаше тернарен if. Той се появи в Python 2.5. Има PEP по въпроса.

  3. Lucho says:

    Хм, не ми хрумна, че причините са исторически.

Leave a Reply