Encapsulamiento y Generalización en Python

Archivada en Desarrollo Web

Encapsulamiento y Generalización en Python

El encapsulamiento es el proceso de envolver una pieza de código en una función, permitiéndole tomar ventaja de todas las bondades de las funciones. Generalizar significa tomar algo específico, como imprimir los múltiplos de 2, y hacerlo más general para imprimir los múltiplos de cualquier número.

Por ejemplo si tenemos el siguiente ciclo en Python:

i = 1
while i <= 6:
   print 2 * i, '\',
   i = i + 1
print

La siguiente función encapsula el ciclo anterior y lo generaliza para imprimir los múltipos de n:

def imprimeMultiplos(n):
    i = 1
    while i <= 6:
        print n * i, '\',
        i = i + 1
    print

Para encapsularla, todo lo que tuvimos que hacer fue agregar la primera linea, que declara el nombre de la función y la lista de parámetros. Para generalizar, todo lo que tenemos que hacer es reemplazar el valor de 2 con el parámetro n.

Si llamamos a esta función con el parámetro 2, obtenemos la misma salida que antes. Con el parámetro 3, la salida es la siguiente:

>>> imprimeMultiplos(3)
3     6     9     12     15     18

Con cuatro como argumento, la salida es esta:

>>> imprimeMultiplos(4)
4     8     12     16     20     24

Seguramente ya habrás adivinado como imprimir una tabla de multiplicar — llamando a imprimeMultiplos repetidamente con diferentes argumentos. De hecho, podemos usar otro ciclo:

i = 1
while i <= 6:
    imprimeMultiplos (i)
    i = i + 1

Observa que similar es este ciclo al que está dentro de imprimeMultiplos. Todo lo que hicimos fue reemplazar el enunciado print con una llamada a la función.

La salida de este programa es una tabla de multiplicar:

1   2   3   4   5   6
2   4   6   8   10   12
3   6   9   12   15   18
4   8   12   16   20   24
5   10   15   20   25   30
6   12   18   24   30   36

Javier Sanchez Toledano

Auditor Líder ISO 9000 ● Desarrollo Web Full Stack ● Django/Python ● JavaScript · NodeJS · Angular · VueJS · EmberJS ● Swift 4 ● WordPress · Genesis Framework ● Lector ● Fotografo aficionado ● Generación X ● Soy de Tlaxcala

Tlaxcala, México

Comentarios