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?“.