What is the Python equivalent for a case/switch statement? [duplicate] What is the Python equivalent for a case/switch statement? [duplicate] python python

What is the Python equivalent for a case/switch statement? [duplicate]


While the official docs are happy not to provide switch, I have seen a solution using dictionaries.

For example:

# define the function blocksdef 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 blocksoptions = {0 : zero,           1 : sqr,           4 : sqr,           9 : sqr,           2 : even,           3 : prime,           5 : prime,           7 : prime,}

Then the equivalent switch block is invoked:

options[num]()

This begins to fall apart if you heavily depend on fall through.


The direct replacement is if/elif/else.

However, in many cases there are better ways to do it in Python. See "Replacements for switch statement in Python?".