Has esperado mucho tiempo por esto porque he evitado hablar sobre estos métodos mágicos Dundar durante mucho
tiempo.
En este video, finalmente vamos a descubrir qué hacen ahora.
Podemos ver lo que tiene nuestra instancia como métodos usando el método de la puerta.
Y le dijimos que estos fueron heredados de nuestra clase de objeto base.
Ahora, esto subraya nuestros métodos especiales.
Recuerde que tenemos cosas como LENTH, por ejemplo, que nos permite decir la longitud de una matriz.
En realidad, estos se implementan utilizando estos métodos Dundar.
Nos permiten usar funciones específicas de Python en objetos creados a través de nuestra clase.
Déjame mostrarte lo que quiero decir.
Vamos a crear una nueva clase y esta será una clase de juguetes.
Ahora, aquí, definiremos un juguete y lo inicializaremos con self.
Entonces diremos que tiene color y edad.
Ahora diré que el color es igual al color.
Entonces estos serán nuestros atributos.
Y H.
Impresionante.
Ahí está nuestra clase ahora, digamos que queremos crear una figura de acción.
Esta figura de acción tendrá una instancia de juguete, digamos el color rojo y las edades, es nueva, por lo que
está cerca.
Ahora, si uso algo como, digamos s t r que viene con este objeto, si uso una estrella o una figura
de acción, un punto subrayado, un subrayado s t r así.
E imprimimos esto.
Vemos que obtenemos esto.
Es exactamente lo mismo que nosotros haciendo la figura de acción SDR.
Como esto.
Mira eso.
Estos métodos Dundar de doble subrayado son métodos especiales que Python reconoce.
Por ejemplo, la estrella Dundar, este método especial nos permite usar una figura de acción como esta usando la
función de estrella incorporada.
De hecho, si va a la documentación de Python en la sección de nombres de
métodos especiales, verá que podemos hacer personalizaciones básicas de estos métodos Dundar y es una lista larga de todos estos
métodos Dundar que podemos usar.
Ahora, no vayas a leer todos y cada uno de ellos.
Hay muchos y no los vas a usar con tanta frecuencia.
Solo hay algunos casos específicos en los que los usará.
Y la idea es saber cómo modificarlos y cómo funcionan debajo del capó.
Entonces.
Repasemos algunos ejemplos, por ejemplo, modifiquemos lo que hace la ATSDR, voy a
definir mi propio SDR aquí.
Me voy a llamar yo mismo.
Y luego aquí, voy a devolver algo diferente, voy a devolver, digamos, una cadena
F.
Es decir, digamos, color autodidacta.
Si ejecuto esto.
Me pongo rojo.
¿Recuerda cómo dijo que no modifiquemos los métodos de Dundar?
Bueno, a veces se te permite, tal vez haya casos, casos especiales en los que quieras
que tu clase se comporte de cierta manera, como diccionarios, listas, tuplas y todos nuestros objetos en Python pueden comportarse de
cierta manera.
Cómo se accede a las listas con un número de índice y se accede a un diccionario con la clave.
Todos se implementan utilizando estos métodos más dudosos.
Y ves aquí que debido a que modificamos esto, la estrella ahora devuelve una roja que se llama figura de acción.
No cambia nada más que con una figura de acción, si ejecuto esto, verás que todavía ejecuta una figura
de acción como esta porque es una cadena.
La estrella solo se modifica cuando la usamos en este objeto específico.
Al igual que.
¿Qué otras cosas podemos hacer?
Bueno, también podemos cambiar el significado de la longitud.
Tan lenth, puedo decir yo.
Y aquí, puedo regresar.
Ahora, si imprimo.
Longitud de la figura de acción.
Y hago clic en ejecutar.
Yo consigo cinco.
Muy bueno, por cierto, si este subrayado se está volviendo un poco molesto, que francamente para mí se está volviendo un
poco molesto, haré clic en la configuración aquí y simplemente eliminaré la inteligencia del código para que no me
diga cuándo mi código es incorrecto, pero espero que pueda depurarlo nosotros mismos.
Está bien.
Así que ahí vamos, acabamos de cambiar la longitud de Dundar para que devuelva cinco.
Sigamos experimentando, también podemos hacer algo como subrayado, subrayado, borrar y borrar.
Bueno, vamos a usar la palabra clave para borrar, que en realidad no hemos visto antes.
Borrar.
Solo podemos decir regresar.
Eliminado.
Tienes que hacer esto y vamos a imprimir aquí, imprimir eliminado si hago clic en ejecutar.
Veo que devolví eliminado ahora la palabra clave de eliminación que realmente no te he enseñado porque no es
algo que veas con mucha frecuencia.
Esto puede causar algunos errores divertidos en nuestros programas que me gusta evitar personalmente.
Pero la palabra clave de eliminación elimina algún tipo de variable que podríamos haber tenido en nuestro programa.
Derecha.
¿Qué más hay ahí?
Cambiemos esto para usar algo llamado llamada.
Y el carbón es interesante.
Digamos que con el carbón vamos a volver y digamos que sí, signo de interrogación.
Lo bueno de Carl es que ahora le da a nuestra clase de juguetes un superpoder, podemos decir figura
de acción y luego decir, bueno, con Carl, ahora podemos llamar al objeto real con estos Brackett.
Entonces, usando la llamada, tengo esta forma especial de llamar a una función que, por cierto, debajo del capó, la
forma en que podemos llamar a las funciones es usando esta llamada Dundar.
Y si hago clic, corro.
Entiendo que sí, ¿qué tan genial es eso?
Muy bien, una última, porque creo que estás empezando a tener una idea de esto, como dije,
todas están disponibles aquí.
Por lo general, no desea sobrescribirlos, pero solo desea saber que tiene el poder para hacerlo.
Si lo desea, el siguiente se llama obtener artículo.
Así que definamos get item.
Nuevamente, usaremos self en el primer parámetro y luego digamos I para índice y aquí
regresaremos self dot y agreguemos un atributo antes de agregar eso, voy a decir self dot my dict for mi diccionario
y luego agregue el nombre.
Va hacia yo.
Y tengamos mascotas iguales a falsas.
Ahora, usando esto, puedo decir mi.
DECT.
Y devuelve el artículo en función del índice que le damos.
Déjame mostrarte lo que quiero decir, si ahora imprimo.
Figura de acción Punto, y aquí, en lugar de hacer el punto, hacemos los corchetes como accederíamos quizás obteniendo un
elemento del diccionario que ahora podemos usar para obtener el elemento y decir qué propiedades tenemos
nombre.
Así que digamos el nombre.
Y si imprimo este OOP.
Olvidé agregar una coma aquí.
Intentémoslo de nuevo.
Y si me desplazo hacia abajo, pueden ver que soy muy bueno leyendo errores, la figura de acción del nombre de Namir no está
definida porque es una figura de acción, no Fugere.
Eso es mejor, mira eso, mi nombre, Yo-Yo, estaba siendo capaz de acceder usando esta notación
de corchetes usando el elemento get Dundar muy, muy bueno.
Así que estos métodos mágicos especiales son realmente interesantes porque nos permiten hacer algunas modificaciones personalizadas
de nuestras clases.
Y también puede comprender cómo en Python los tipos predeterminados incorporados tenían acceso y habilidades para tener todas
estas sintaxis especiales.
Ahora también tenemos ese poder.
Tomemos un descanso y hagamos un poco de ejercicio.