1

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

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

当然这没有用,这就是我问的原因。使用此代码,未分配默认值 (10)。

4

2 回答 2

3

dictionary.get 方法帮助说:get(...) D.get(k[,d]) -> D[k] if k in D, else 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
于 2012-02-07T00:14:16.913 回答
2

另一种选择是:

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

这是有效的,因为 or 运算符将评估左侧表达式并在 True 时返回它,否则它将评估右侧表达式并在 True 或 False 时返回它。在这种情况下,我们知道 10 是 True,所以如果没有传递参数,self.request.get('limit') == False 所以(False 或 10)将返回 10。

于 2012-02-07T08:11:41.533 回答