quarta-feira, 22 de junho de 2016

Convertendo dados diversos para inteiro no python

Uma das dificuldades do python para quem já está acostumado com o tryparse() do c# é converter um objeto qualquer para outro tipo porém sem ter a certeza de que o mesmo está no formato correto e que não retornará um erro, como no python não existe nativamente, segue um exemplo de script que simula o tryparse() convertendo para inteiro.

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

Nenhum comentário: