[pyar] Cantidad de "returns" por función y algo más.

Jean Chassoul chassoul en gmail.com
Lun Jul 5 02:47:37 ART 2010


Hola,

Tengo una consulta sobre si es pythonico o no tener mas de uno o dos
return's por función, adjunto este código de ejemplo:

def generate_billing(channel, number, call_time, duration):
    call_time = int(call_time.strftime('%H%M%S'))
    call = match_billing(channel, number)

    if call is None:
        return [(None, None)]

    billing = lambda rate: (duration * rate, call.billing.currency)

    if call.billing.has_reduced:
        start_time =
int(''.join(call.billing.reduced_start_time.split(':')))
        end_time = int(''.join(call.billing.reduced_end_time.split(':')))

        if (lambda x: x >= start_time and x <= end_time)(call_time):
            return [billing(call.billing.reduced_rate)]

    return [billing(call.billing.rate)]

Se que perfecta mente puede haber hecho algo como esto:

def generate_billing(channel, number, call_time, duration):
    call_time = int(call_time.strftime('%H%M%S'))
    call = match_billing(channel, number)

    if call:
        [PONER AQUÍ EL RESTO DEL CÓDIGO]
    else:
        return [(None, None)]

Pero no lo hice de esa forma para ahorrarme la identacion extra no se si me
explico... de hacerlo de esa forma tendría que mover 4 espacios a la derecha
todo el resto del código de la función y eso es exactamente lo que quise
evitar para no pasar de los 78 espacios.

La función tiene 3 posibles returns por eso me surge la duda si existe algún
cuidado, limite o recomendación sobre este tema.

Aprovechando el correo, estoy 99% seguro que existe una mejor forma de
comparar horarios en python pero la verdad no se me ocurre como hacerlo como
pueden ver en el código que adjunto estoy comparando horarios pasándolo de
str a int y luego realizando la comparación con <= y >= :(

Saludos y gracias de antemano por los consejos.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100704/1724fc45/attachment.html>


More information about the pyar mailing list