如果未设置url参数,我想分配默认值。像这样:
try:
limit = self.request.get('limit')
except NameError:
limit = 10
当然那不起作用,这就是我要问的原因。使用此代码时,不会分配默认值(10)。
答案 0 :(得分:3)
dictionary.get方法帮助说: 得到(...) D.get(k [,d]) - >如果k在D中则为D [k],否则为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
答案 1 :(得分:2)
另一种选择是:
limit = self.request.get('limit') or 10
这是有效的,因为or运算符将计算左表达式并返回它,如果为True,否则它将计算正确的表达式并返回它,如果为True或False。在这种情况下,我们知道10是True,所以如果没有传递参数,self.request.get('limit')== False so(False或10)将返回10.