Quest'ultimo (try/except
) è generalmente la forma migliore.
try
I blocchi sono molto economici ma la cattura di un'eccezione può essere più costosa. Un controllo di contenimento su un titolo tende ad essere economico, ma non più economico di niente. Sospetto che ci sarà un equilibrio di efficienza a seconda di quanto spesso lo 'subject'
è davvero lì. Tuttavia, non importa, poiché l'ottimizzazione prematura è inutile, dispersiva, dispendiosa e inefficace. Andresti con la soluzione migliore.
Se il codice sarebbe in realtà essere di forma
if 'subject' in request.POST:
subject = request.POST['subject']
else:
subject = some_default
allora quello che realmente vuole è request.POST.get('subject', some_default)
.
fonte
2010-02-11 20:22:29
Quali "efficienti", "più veloci" e "migliori" ti preoccupano veramente e quale definizione di "efficiente" e "migliore" hai in mente? –
Immagino di voler dire qual è la migliore pratica di codifica. In questa particolare situazione, se 'subject' non è POST, che è un errore, non c'è un valore di default che dovrebbe esserci. Grazie per tutte le risposte. – mhost