Me gustaría saber si existe un Python equivalente para la declaración del caso, como los ejemplos disponibles en VB.net o C#?¿Cuál es el equivalente de Python para una sentencia case/switch?
241
A
Respuesta
355
Si bien el official docs están dispuestos a no proporcionar el interruptor, he visto un solution using dictionaries.
Por ejemplo:
# 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,
}
A continuación, se invoca el bloque de interruptores equivalentes:
options[num]()
Esto comienza a desmoronarse si dependen en gran medida a través de la caída.
81
El reemplazo directo es if
/elif
/else
.
Sin embargo, en muchos casos hay mejores formas de hacerlo en Python. Ver "Replacements for switch statement in Python?".
Cuestiones relacionadas
- 1. ¿Cuál es el equivalente Python de Tomcat?
- 2. ¿Cuál es el equivalente de issubclass de instancia en python?
- 3. ¿Cuál es el equivalente Ruby de os.walk de Python?
- 4. ¿Cuál es el equivalente en Python de FindBin de Perl?
- 5. ¿Cuál es el equivalente de python a "a" .. "azc"
- 6. ¿Cuál es el equivalente Ruby de "pythonic"?
- 7. ¿Cuál es el equivalente Ruby de python setup.py develop?
- 8. ¿Cuál es el equivalente de Python de "perl -V"
- 9. ¿Cuál es el equivalente de php's print_r() en python?
- 10. ¿Cuál es el equivalente de Groovy al dir de Python()?
- 11. ¿Cuál es el equivalente de Python al "inspeccionar" de Ruby?
- 12. ¿Cuál es el equivalente Python de DBI de Perl?
- 13. Go - ¿Cuál es el equivalente del "pase" de Python?
- 14. ¿Cuál es el equivalente Python de Lame MP3 Converter?
- 15. ¿Cuál es el equivalente en rubí del getattr de python?
- 16. Usando un dict de Python para una sentencia SQL INSERT
- 17. ¿Cuál es el equivalente en PHP para el enunciado de paso de Python?
- 18. ¿Cuál es el equivalente de Ruby para StringReader de Java?
- 19. ¿Cuál es el equivalente de WPF para FlowLayoutPanel?
- 20. ¿Cuál es el equivalente de java.sql.Types para MySQL TEXT?
- 21. ¿Cuál es el equivalente de argv [0]?
- 22. ¿Cuál es el equivalente de LINQ-a-SQL para Silverlight?
- 23. ¿Cuál es el equivalente de write_attribute para asociaciones en Rails?
- 24. Ir a Python desde R, ¿cuál es el equivalente de Python de un marco de datos?
- 25. ¿Cuál es el equivalente de Windows de pwd.getpwnam (username) .pw_dir?
- 26. ¿Cuál es el equivalente Monotouch de dealloc?
- 27. ¿Cuál es el equivalente de ObjectContext.ApplyCurrentValues para DbContext
- 28. ¿Cuál es el equivalente Android de/dev/video0 para tableta?
- 29. ¿Cuál es el equivalente de Varchar (máximo) para DB2?
- 30. ¿Cuál es el equivalente de Cloud-Init para Windows?
La segunda pregunta no es un seguimiento, e incluso los seguimientos deben publicarse como preguntas separadas. Además de eso, está fuera de tema, y debería ir en programmers.stackexchange.com. Y, tu primera pregunta es un duplicado. –