python – =尝试除了模式?

python – =尝试除了模式?,第1张

概述我发现这个设计模式出现了很多: try: year = int(request.GET['year'])except: year = 0 try块可能因为键不存在而失败,或者因为它不是int,但我并不在意.我到底需要一个理智的价值. 难道不应该有更好的方法吗?或者至少在一条线上做到这一点?就像是: year = int(request.GET['year']) except 0 或者你们也使用这 我发现这个设计模式出现了很多:

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 – =尝试除了模式?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存