Náhrady príkazu switch v jazyku Python?

Chcem napísať funkciu v jazyku Python, ktorá vráti rôzne pevné hodnoty na základe hodnoty vstupného indexu.

V iných jazykoch by som použil príkaz switch alebo case, ale zdá sa, že Python nemá príkaz switch. Aké sú odporúčané riešenia v jazyku Python v tomto scenári?

Riešenie

Môžete použiť slovník:

def f(x):
    return {
        'a': 1,
        'b': 2,
    }[x]
Komentáre (18)

Vždy som to rád robil týmto spôsobom

result = {
  'a': lambda x: x * 5,
  'b': lambda x: x + 7,
  'c': lambda x: x - 2
}[value](x)

Odtiaľto

Komentáre (15)

Ak naozaj vraciate len vopred určenú, pevnú hodnotu, môžete vytvoriť slovník so všetkými možnými vstupnými indexmi ako kľúčmi spolu s ich príslušnými hodnotami. Taktiež by ste možno naozaj nechceli, aby to robila funkcia - pokiaľ nejakým spôsobom nevypočítavate návratovú hodnotu.

A ak máte chuť urobiť niečo podobné prepínaču, pozrite si tu.

Komentáre (0)