Este último (try/except
) la forma es generalmente la mejor forma.
try
bloques son muy baratos, pero la captura de una excepción puede ser más costosa. Un control de contención en un dict tiende a ser barato, pero no es más barato que nada. Sospecho que habrá un equilibrio entre la eficiencia y la frecuencia con la que realmente existe 'subject'
. Sin embargo, esto no importa, ya que la optimización prematura es inútil, distrae, desperdicia e ineficaz. Usted iría con la mejor solución.
Si el código sería en realidad de forma
if 'subject' in request.POST:
subject = request.POST['subject']
else:
subject = some_default
entonces lo que realmente quiere es request.POST.get('subject', some_default)
.
¿Qué "eficiente", "más rápido" y "mejor" realmente le importa, y qué definición de "eficiente" y "mejor" tiene en mente? –
Supongo que quise decir cuál es la mejor práctica de codificación. En esta situación particular, si 'subject' no es POST, que es un error, no hay ningún valor predeterminado que debería estar allí. Gracias por todas las respuestas. – mhost