Wat is het Python-equivalent voor een case/switch-statement?

Ik zou graag willen weten of er een Python-equivalent is voor de case-statement, zoals de voorbeelden die beschikbaar zijn op VB.net of C#?

Antwoord 1, autoriteit 100%

Hoewel de officiële documenten graag geen omschakeling bieden, heb ik een oplossing met woordenboeken.

Bijvoorbeeld:

# define the function blocks
def zero():
    print "You typed zero.\n"
def sqr():
    print "n is a perfect square\n"
def even():
    print "n is an even number\n"
def prime():
    print "n is a prime number\n"
# map the inputs to the function blocks
options = {0 : zero,
           1 : sqr,
           4 : sqr,
           9 : sqr,
           2 : even,
           3 : prime,
           5 : prime,
           7 : prime,
}

Vervolgens wordt het equivalente schakelblok aangeroepen:

options[num]()

Dit begint uit elkaar te vallen als je sterk afhankelijk bent van doorvallen.

Antwoord 2, autoriteit 34%

De directe vervanging is if/elif/else.

In veel gevallen zijn er echter betere manieren om dit in Python te doen. Zie “Vervangingen voor switch-instructie in Python?“.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

nine − two =

Other episodes