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