Lambda内的Python Try Catch Block

Lambda内的Python Try Catch Block,第1张

Lambda内的Python Try Catch Block

不。Python lambda只能是单个表达式。使用命名函数

编写用于转换类型的通用函数很方便:

def tryconvert(value, default, *types):    for t in types:        try: return t(value)        except (ValueError, TypeError): continue    return default

然后,您可以编写lambda:

lambda v: tryconvert(v, 0, int)

您也可以

tryconvert()
这样编写,使其 返回 一个将要转换的值的函数。那么您就不需要lambda了:

def tryconvert(default, *types):    def convert(value):        for t in types: try:     return t(value) except (ValueError, TypeError):     continue        return default    # set name of conversion function to something more useful    namext = ("_%s_" % default) + "_".join(t.__name__ for t in types)    if hasattr(convert, "__qualname__"): convert.__qualname__ += namext    convert.__name__ += namext    return convert

现在

tryconvert(0, int)
返回一个将值转换为整数的函数,
0
如果无法完成,则返回。



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

原文地址: https://outofmemory.cn/zaji/5630728.html

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

发表评论

登录后才能评论

评论列表(0条)

保存