如果未定义param,则设置默认变量值

时间:2012-02-06 23:42:28

标签: python google-app-engine webapp2

如果未设置url参数,我想分配默认值。像这样:

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

当然那不起作用,这就是我要问的原因。使用此代码时,不会分配默认值(10)。

2 个答案:

答案 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.