el cambio de caja en python no funciona; necesita otro patrón
Necesito ayuda con un código aquí, quería implementar el patrón de mayúsculas y minúsculas en Python, así que, como decía un tutorial, puedo usar un diccionario para eso, pero aquí está mi problema:
# type can be either create or update or ..
message = { 'create':msg(some_data),
'update':msg(other_data)
# can have more
}
return message(type)
pero no funciona para mí porque algunos_datos u otros_datos pueden ser Ninguno (genera un error si no es ninguno) y la función msg debe ser simple (no quiero ponerle alguna condición).
El problema aquí es que la función msg () se ejecuta cada vez para completar el dict a diferencia del patrón de mayúsculas y minúsculas, que generalmente en otro lenguaje de programación no ejecuta el código en elcase
a menos que sea un partido.
¿hay alguna otra manera de hacer esto o solo necesito hacerlo si elif ...
Actualizar: gracias por todas las respuestas, pero en realidad es más así
message = { 'create': "blabla %s" % msg(some_data),
'update': "blabla %s" % msg(other_data)
'delete': "blabla %s" % diff(other_data, some_data)
}
así que lambda no funciona aquí y no se llama a la misma función, por lo que es más como un caso de interruptor real que necesito, y tal vez tenga que pensar en otro patrón.