Bienvenido de nuevo.
En el video anterior, vimos que hicimos un gran booboo, es decir, sobrescribimos el nombre y hablamos, y ahora
todo ese arduo trabajo que pusimos en nuestra clase ha sido reemplazado por esto.
Quiero decir, claro, si creamos una instancia de un nuevo objeto.
Tendremos nuestro correr y hablar, pero el jugador uno ahora es completamente inútil, no tiene nombre y habla, pero
solo dice Boo, completamente inútil.
Ahora, en Python, existe esta idea de público y privado, y esto está relacionado con nuestra discusión
sobre la abstracción, la idea detrás de la abstracción es que ocultamos información y solo damos acceso a
cosas que preocupan al usuario.
Derecha.
Entonces, idealmente, no deberíamos tener acceso a él.
Idealmente, no deberíamos poder, digamos, modificar, ejecutar o modificar el nombre y la edad, porque cuando creamos
un personaje de jugador en nuestro juego, es de esperar que el jugador pueda cambiar aleatoriamente su nombre o su
edad.
Y colóquese en nuestro juego, que quizás tenga solo 18 años o más.
Entonces, ¿podemos hacer una variable privada en nuestra clase?
Bueno, aquí está la cosa.
Algunos lenguajes nos permiten tener variables privadas.
Por ejemplo, en un lenguaje como Java, puedo decir que un atributo es privado como este, y no
podré acceder a él y modificarlo como lo hice de esta manera.
Pero en Python, no hay verdadera privacidad, no hay verdaderas variables privadas.
Entonces, ¿cómo solucionamos esto?
Bueno, lo que haríamos es subrayar el nombre o subrayar H.
Ahora bien, ¿esto le da algún poder especial?
No, esto es solo una convención que, como programadores, como programadores de Python, determinamos que, oye, si
vemos un guión bajo en nuestro código, lo más probable es que esto signifique que debe ser una variable privada.
De modo que cuando lo use en speak, digamos nombre de subrayado, subrayado H.
Y comentemos esto si hago clic, Ron.
Bueno, tengo que ejecutar esto porque ahora es un método, ejecutemos.
Y me llamo Andre, y tengo 100 años.
Todo funciona, pero si trato de sobrescribir esto y hago clic en ejecutar.
OK, y ahora, como ya no es un método, eliminemos, hablemos y hago clic en ejecutar.
Esto todavía funciona, y eso se debe a que, como dije, no hay verdaderas variables privadas como programadores, hemos decidido que
el subrayado significa que no debes tocarnos.
Por favor, no toques esto.
Todavía puedes ser malo y hacer algo como esto.
Pero te lo hago saber con anticipación.
Si ve un guión bajo, esto no debería modificarse.
Esto debería ser privado.
Y así es como logramos la privacidad en Python.
Todos estuvimos de acuerdo en decir, oye, mantengamos esta pequeña cosa en privado.
Entonces, si alguna vez desea mantener un método o un atributo en privado, simplemente coloque un guión bajo delante de él.
Pero no es garantía.
¿Qué pasa con este inicio de doble subrayado?
Nuevamente, esto es algo de lo que hablaremos muy pronto, pero se llama método Dundar.
Es decir, está integrado en Python.
Y por lo general nunca escribimos nuestros propios métodos Dundar, nunca escribiríamos doble subrayado, escribir esto.
Estos guiones bajos dobles y hay muchos de ellos tienen un significado especial en Python.
Y la razón por la que su nombre es así es porque están diciendo, oye, si estás escribiendo doble subrayado
para tu variable, estás haciendo algo muy mal, estás a punto de sobrescribir algo.
Una vez más, este doble subrayado también es una convención para que la gente sepa que no
debería tocar esto o modificarlo con cada tipo de datos.
Digamos una lista.
Si hago Dot, lo verás a medida que te desplazas hacia abajo.
Tienes muchos de estos métodos Dundar, nuevamente, algo de lo que vamos a hablar.
Pero estos están aquí para hacerle saber, no los sobrescriba.
Si estás haciendo algo como subrayado, subrayado, no conozco un documento como este, eso es malo.
No intente modificarlo y asignarlo en cinco.
Entonces, esta idea de un campo privado es importante para Python, y aunque podemos sobrescribir muchas cosas, es una
mala práctica.
Pero volvamos a la abstracción.
La idea es abstraer este código.
Y aunque se puede modificar y anular mediante el uso de estas convenciones adecuadas, como los atributos privados, podemos abstraer las
cosas, pero aún así nos aseguramos de que lo que sea que esté usando el usuario no
romperá nuestro código.
Te veo en el próximo, Bob.