Tengo una estructura if-elif-else con múltiples niveles, pero el último nivel else
es siempre la misma declaración:
if statement1:
if something:
do_thing()
elif something_else:
if something_something:
do_thing_something()
elif somethingg:
do_thingg()
else:
do_default()
else:
do_default()
else:
do_default()
Como puede ver, uso do_default()
3 veces, y siento que hay una mejor manera. Esto sería básicamente una default
en una declaración switch-case
en otros idiomas, pero Python no tiene switch-case
. Me preguntaba si hay alguna otra manera de resolver esto con más elegancia / "Pitónicamente". O es la única forma de usar dictados o implementar mi propio switch-case
?
3 respuestas
Puede empaquetarlo en una función y escribirlo como en
def wrapper(args):
if statement1:
if something:
return do_thing()
elif something_else:
if something_something:
return do_thing_something()
elif somethingg:
return do_thingg()
do_default()
Aunque tienes que escribir return varias veces
Tirar de este bloque a una función puede ayudar:
def do_things():
if statement1:
if something:
return do_thing()
elif something_else:
if something_something:
return do_thing_something()
elif somethingg:
return do_thingg()
return do_default()
Puede intentar anidar sus condicionales:
if statement1 and something:
do_thing()
elif statement1 and something_else and something_something:
do_thing()
elif statement1 and something_else and somethingg:
do_thingg()
else:
do_default()
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.