Последние (try/except
) форма, как правило, лучшая форма.
try
блоки очень дешевы, но исключение может быть более дорогостоящим. Проверка сдерживания на дикте имеет тенденцию быть дешевой, но не дешевле, чем ничего. Я подозреваю, что будет баланс эффективности в зависимости от того, как часто 'subject'
действительно есть. Однако это неважно, поскольку преждевременная оптимизация бесполезна, отвлекает, расточительна и неэффективна. Вы бы выбрали лучшее решение.
Если код будет фактически формы
if 'subject' in request.POST:
subject = request.POST['subject']
else:
subject = some_default
то, что вы на самом деле хотите, request.POST.get('subject', some_default)
.
Какой из «эффективных», «более быстрых» и «лучших» вам действительно интересен, и какое определение «эффективно» и «лучше» вы имеете в виду? –
Я предполагаю, что я имел в виду, какая из лучших методик кодирования. В этой конкретной ситуации, если «субъект» не является POST, чем это ошибка, нет значения по умолчанию, которое должно быть там. Спасибо за все ответы. – mhost