Sabemos que hay cuatro pilares de OPIS y aprendimos sobre encapsulación, ¿cuál es el segundo?
Bueno, se llama abstracción.
Una abstracción significa ocultar información o abstraer información y dar acceso solo a lo
necesario.
Entonces, lo que sea que le interese al usuario, al programador o a la máquina, eso es lo único que le damos
acceso a todo lo demás.
Lo escondemos en una manta debajo del capó porque nuestros usuarios no tienen que preocuparse por eso.
Déjame mostrarte lo que quiero decir.
Si vuelvo a nuestro ejemplo anterior aquí, entonces en lugar de tener un diccionario, en realidad tenemos
un personaje jugador con un montón de métodos.
Ahora bien, la abstracción se puede ver aquí, ¿verdad?
Cuando lo hago.
Player one dot speak, estás viendo la abstracción en acción porque cuando hago clic en ejecutar.
Consigo esta bebida, pero cuando llamo a speak, realmente no me importa cómo se implemente Speek, todo lo que sé
es que el jugador uno tiene acceso al método speak y puedo usarlo.
Lo mismo ocurre cuando estoy usando algo como un derecho de tupla.
Si tengo uno, dos, tres y puntito aquí, puedo contar para contar cuántos elementos hay en la tupla.
Entonces, si imprimo y hago clic, ejecute.
Bueno, tengo que darle algo que estamos buscando en nuestro caso, veamos uno y agreguemos
otro aquí.
Si hago clic, corre.
Llego a ahora, ¿necesito saber cómo se implementó el método de conteo?
No, quiero decir, puedo investigarlo, puedo ver la documentación de Python, tal vez
el código de Python y entender cómo está contando esto, pero realmente no necesito escribir.
Si tratamos de entender cada pequeña parte, nuestras cabezas van a estallar.
A veces, todo lo que necesitamos es un método o un atributo y acceder a él sin tener que preocuparnos
por cómo se está implementando, lo cual es realmente bueno.
Lo mismo ocurre con las funciones integradas, ¿verdad?
Si lo hago lenth aquí y hago clic en ejecutar.
Obtengo una longitud de cuatro, pero realmente no necesito saber cómo se implementó LENTH en Python,
se abstrae de nosotros.
Y este es el poder de OLP, abstrae las cosas que no necesitamos preocuparnos, o al menos nos hace más
eficientes para que sepamos que funciona de cierta manera y no estamos perdiendo el tiempo
aprendiendo o aprendiendo. codificación desde cero.
Si tuviéramos nuestro iPhone, por ejemplo, bueno, la función de cámara en un iPhone, sería bueno para una aplicación
que creamos para usarlo.
Pero no necesitamos saber exactamente cómo está codificada la cámara del iPhone en un iPhone.
No.
En cambio, el iPhone generalmente nos da una forma de decir el punto de la cámara, tomar una foto.
Permitirnos realmente tomar una foto sin saber cómo los ingenieros de Apple realmente recubrieron la cámara, por lo que es
un concepto muy poderoso.
Bien, entonces estás pensando, creo que me distraeré.
Pero dejame preguntarte esto.
¿Podría simplemente hacer que el nombre del jugador uno sea igual a, digamos, signos de exclamación y luego ejecutar el punto del jugador?
O, ya sabes, menos para hablar es igual a abuchear, asegúrate de que sea el jugador uno.
Bueno, si ahora imprimo y hago el jugador uno.
El pensamiento habla e intento ejecutar esta función.
Vamos a ver.
Obtengo que el objeto de cadena no se puede llamar porque se ha modificado el habla, se ha modificado
el habla a un valor de cadena en lugar de esta función real que habríamos necesitado para que si ejecuto,
solo verificando el atributo del altavoz, obtengo boo.
Hmmm, quiero decir, la abstracción es buena, pero espere un segundo aquí, esto es malo si tengo una clase que
he abstraído, pero cualquiera puede venir, cualquier programador puede venir y simplemente eliminar todo mi trabajo
duro y sobrescribirlo así.
¿No es tan malo?
Tomemos un descanso y exploremos este tema un poco más en el siguiente video.