Saltar al contenido

¿Función que devuelve un NoneType en Python?

Siéntete en la libertad de compartir nuestros tutoriales y códigos en tus redes sociales, danos de tu ayuda para hacer crecer esta comunidad.

Solución:

En el caso de que sCheck == True es falsetu no return cualquier cosa. Y en Python, una función que no explícitamente return cualquier cosa vuelve None.

Si intentabas llamarte recursivamente a ti mismo y devolver el resultado, querías esto:

return falseChecker(binList, r, c, size)

La línea recursiva:

falseChecker(binList, r, c, size)

necesita ser

return falseChecker(binList, r, c, size)

o la función recursiva termina, y la función externa sigue adelante ya que aún no ha regresado. Luego termina sin volver, y así vuelve. None.

Tu necesitas un return al final de falseChecker:

def falseChecker(binList, r, c, size):
    sCheck = isSpaceFree(binList, r, c, size)
    if sCheck == True:
        for x in range(c, c+size):
            for y in range(r, r+size):
                binList[x][y] = size
        return binList
    else:
        c += 1
        if c > len(binList):
            c = 0
            r += 1
            if r > len(binList):
                 return binList

        #################################
        return falseChecker(binList, r, c, size)
        #################################

En Python, las funciones regresan None por defecto si llegan al final de sí mismos sin volver. Además, cuando falseChecker se ejecuta por primera vez, si sCheck es Falseentonces ejecutará el else bloquear. Este bloque de código no contiene un return. Debido a esto, el valor final de retorno de falseChecker estarán None.

Puedes sustentar nuestro cometido fijando un comentario y puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *