try: year = int(request.GET['year'])except: year = 0
try块可能因为键不存在而失败,或者因为它不是int,但我并不在意.我到底需要一个理智的价值.
难道不应该有更好的方法吗?或者至少在一条线上做到这一点?就像是:
year = int(request.GET['year']) except 0
或者你们也使用这种模式?
在你回答之前,我已经知道了request.GET.get(‘year’,0),但你仍然可以得到一个值错误.在try / catch块中包装它以捕获值错误只意味着默认值在我的代码中出现两次.更糟糕的IMO.
解决方法 我使用辅助函数:def get_int(request,name,default=0): try: val = int(request.GET[name]) except (ValueError,KeyError): val = default return val
然后:
year = get_int(request,'year')
它将try / catch的复杂性保留在一个地方,并且可以实现整洁的功能,在视图函数中每个参数有一行.
总结以上是内存溢出为你收集整理的python – =尝试除了模式?全部内容,希望文章能够帮你解决python – =尝试除了模式?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)