加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – =尝试除了模式?

发布时间:2020-12-20 13:03:05 所属栏目:Python 来源:网络整理
导读:我发现这个设计模式出现了很多: try: year = int(request.GET['year'])except: year = 0 try块可能因为键不存在而失败,或者因为它不是int,但我并不在意.我到底需要一个理智的价值. 难道不应该有更好的方法吗?或者至少在一条线上做到这一点?就像是: year
我发现这个设计模式出现了很多:

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的复杂性保留在一个地方,并且可以实现整洁的功能,在视图函数中每个参数有一行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读