且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

是否有内置或更多Pythonic方式尝试将字符串解析为整数

更新时间:2023-11-28 23:20:46

这是一个非常普通的场景,因此我编写了一个"ignore_exception"修饰符,该修饰符适用于引发异常而不是正常失败的所有函数: >

This is a pretty regular scenario so I've written an "ignore_exception" decorator that works for all kinds of functions which throw exceptions instead of failing gracefully:

def ignore_exception(IgnoreException=Exception,DefaultVal=None):
    """ Decorator for ignoring exception from a function
    e.g.   @ignore_exception(DivideByZero)
    e.g.2. ignore_exception(DivideByZero)(Divide)(2/0)
    """
    def dec(function):
        def _dec(*args, **kwargs):
            try:
                return function(*args, **kwargs)
            except IgnoreException:
                return DefaultVal
        return _dec
    return dec

您的情况下的用法:

sint = ignore_exception(ValueError)(int)
print sint("Hello World") # prints none
print sint("1340") # prints 1340