Я хотел бы знать, существует ли эквивалент Python для оператора case, например, примеры, доступные на VB.net или С#?
Что такое эквивалент Python для оператора case/switch?
Ответ 1
В то время как официальные документы приветствуются тем, что не предоставляют переключатель, я видел с использованием словарей.
Например:
# 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,
}
Затем вызывается эквивалентный блок переключателя:
options[num]()
Это начинает разваливаться, если вы сильно зависите от падения.
Ответ 2
Прямая замена if
/elif
/else
.
Однако во многих случаях есть лучшие способы сделать это в Python. См. "Замены для оператора switch в Python?".