如果未设置 url 参数,我想分配一个默认值。像这样的东西:
try:
limit = self.request.get('limit')
except NameError:
limit = 10
当然这没有用,这就是我问的原因。使用此代码,未分配默认值 (10)。
如果未设置 url 参数,我想分配一个默认值。像这样的东西:
try:
limit = self.request.get('limit')
except NameError:
limit = 10
当然这没有用,这就是我问的原因。使用此代码,未分配默认值 (10)。
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
另一种选择是:
limit = self.request.get('limit') or 10
这是有效的,因为 or 运算符将评估左侧表达式并在 True 时返回它,否则它将评估右侧表达式并在 True 或 False 时返回它。在这种情况下,我们知道 10 是 True,所以如果没有传递参数,self.request.get('limit') == False 所以(False 或 10)将返回 10。