Установка значения переменной по умолчанию, если параметр не определен - PullRequest
1 голос
/ 07 февраля 2012

Я хочу назначить значение по умолчанию, если параметр url не установлен.Примерно так:

try: 
    limit = self.request.get('limit')
except NameError:
    limit = 10

Конечно, это не сработало, поэтому я и спрашиваю.С этим кодом значение по умолчанию (10) не присваивается.

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012
Справка по методу

dictionary.get говорит: получить(...) D.get (k [, d]) -> D [k], если k в D, иначе d. d по умолчанию Нет.

Тогда, решение:

try:
    limit_default_value = 10
    limit = int(self.request.get('limit', limit_default_value))
except ValueError: #catch a string that does not like decimal
    limit = limit_default_value
2 голосов
/ 07 февраля 2012

Другой альтернативой является выполнение:

limit = self.request.get('limit') or 10

Это работает, потому что оператор or вычислит левое выражение и вернет его, если True, в противном случае он вычислит правильное выражение и вернет его, если True или False,В этом случае мы знаем, что 10 - это True, поэтому, если не передан ни один параметр, self.request.get ('limit') == False, поэтому (False или 10) вернет 10.

...