Programación orientada a objetos (POO) en Python | Jayanta Sarkar | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Programación orientada a objetos (POO) en Python

teacher avatar Jayanta Sarkar, Behind the Code: Jayanta Sarkar

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      1:21

    • 2.

      Qué es Oop

      2:07

    • 3.

      Qué es la encapsulación

      2:15

    • 4.

      Qué es la abstracción

      1:43

    • 5.

      Herencia

      3:02

    • 6.

      Polimorfismo

      1:50

    • 7.

      Crea tu primera clase en Python

      5:43

    • 8.

      Diferencia entre variable de instancia y variable de clase

      4:14

    • 9.

      Self e init () (constructores)

      8:13

    • 10.

      Métodos de clase en Python

      4:51

    • 11.

      Métodos de clase como constructores alternativos

      5:58

    • 12.

      Métodos estáticos en Python

      3:18

    • 13.

      Qué es la abstracción y la encapsulación

      4:32

    • 14.

      Introducción a la herencia en Python

      8:25

    • 15.

      Herencia única con constructor

      4:15

    • 16.

      Herencia múltiple

      14:05

    • 17.

      Herencia multinivel en Python

      5:04

    • 18.

      Especificadores de acceso público, privado y protegido

      3:16

    • 19.

      Introducción al polimorfismo

      3:56

    • 20.

      Super() y la anulación en clases

      8:39

    • 21.

      Problema de forma de diamante en herencia múltiple

      5:27

    • 22.

      Sobrecarga de operadores y métodos de Dunder

      3:55

    • 23.

      Clase básica abstracta

      3:40

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

41

Estudiantes

1

Proyectos

Acerca de esta clase

Libera todo el potencial de Python al dominar los principios de la programación orientada a objetos (POO). En este curso completo, aprenderás a estructurar tu código en Python con clases, objetos, herencia, polimorfismo y encapsulación. Tanto si eres un principiante que busca entender los conceptos básicos como un desarrollador experimentado que busca perfeccionar tus habilidades, este curso está diseñado para guiarte a través de los conceptos básicos y las técnicas avanzadas de la OOP en Python.

Comenzaremos con los conceptos fundamentales y exploraremos cómo la OOP puede ayudarte a escribir código más limpio, eficiente y escalable. A medida que avanzas, te sumergirás en temas más avanzados como la herencia de clases, las clases abstractas y los métodos mágicos, lo que te asegurará de que comprendas a fondo cómo aprovechar las funciones de OOP de Python en aplicaciones del mundo real.

Al final de este curso, estarás equipado con los conocimientos y las habilidades para crear programas complejos y orientados a objetos en Python, lo que hará que tu código sea más modular, reutilizable y mantenible.

Conoce a tu profesor(a)

Teacher Profile Image

Jayanta Sarkar

Behind the Code: Jayanta Sarkar

Profesor(a)

Jayanta Sarkar is a dedicated Python programmer and full-stack web developer with a passion for creating dynamic and interactive web applications. With a robust background in both front-end and back-end development, Jayanta excels in building seamless user experiences and efficient, scalable systems.

Over the years, Jayanta has honed his skills in various programming languages and frameworks, making him proficient in technologies such as JavaScript, CSS, HTML, and MySQL. His expertise extends to developing comprehensive solutions that integrate sophisticated database management with intuitive user interfaces.

Jayanta's journey in the tech industry is marked by a continuous drive to learn and adapt to new technologies. He has developed and published several successf... Ver perfil completo

Habilidades relacionadas

Desarrollo Lenguajes de programación Python
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Hola. Bienvenido al curso Python Object Oriented Programming. Mi nombre es Joan Shorker y soy programador Python y desarrollador web fullstack Aquí vengo con un nuevo curso relacionado Python Programación orientada a objetos. Este curso está especialmente diseñado para principiantes que solo quieren aprender el concepto de programación orientada a objetos. He descrito la programación orientada a objetos manera muy sencilla en este curso. En este curso, voy a cubrir todos los conceptos relacionados con clases de programación orientada a objetos, encapsuion de objetos, polimorfismo, herencia, abstracción, etcétera Estos son todos los temas que voy a cubrir en esta serie de tutoriales. Vamos a aprender cuál es la diferencia entre variable de instancia y variable de clase. Vamos a aprender sobre constructores propios e innit, método de clase, constructores alternativos, todo tipo de herencia, especificadores privados protegidos y de privados protegidos y Clases súper y primordiales, problemas de forma de diamante, etcétera. Después de COO, todo este concepto, vamos a crear un mini proyecto basado en la programación orientada a objetos Vamos a crear un sistema de gestión de bibliotecas, y sería un buen mini proyecto para que los principiantes comprendan el concepto de programación orientada a objetos. Este curso es para principiantes, no para los nervios. Este no es un curso de nivel muy avanzado, pero para un principiante, es uno bueno. ¿A qué esperas? Inscriba ya este curso. 2. Qué es oop: Entonces intentemos entender qué es la programación orientada a objetos. La programación orientada a objetos es un modelo de lenguaje de programación organizado alrededor de objetos en lugar de acción y en lugar de lógica. En primer lugar, no es un lenguaje de programación. Es simplemente un modelo para escribir código. Hay muchos lenguajes de programación que soportan la programación orientada a objetos. Donde usamos objetos en lugar de funciones. Tratemos de entenderlo de una manera sencilla. Por ejemplo, un objeto podría representar una persona con propiedades como nombre, edad, direcciones y comportamientos como caminar, hablar, respirar y correr. Podemos llamar a una persona un objeto y podemos llamar a sus propiedades clases. Vamos a aprender sobre las clases en nuestros próximos tutoriales. Ahora bien, ¿qué es la programación orientada a objetos en Python? Como cualquier otro lenguaje de programación orientado a objetos, le permite definir clases para crear objetos, y en las clases salvajes son los tipos de datos más comunes en Python, como cadena, lista , diccionarios, etc. Ahora el quoi es lo que es clase? Una clase es una colección de variables de instancia y métodos relacionados que definen un tipo de objeto en particular. Se puede pensar en una clase como un blueprint de objeto o una plantilla, y los atributos son los nombres dados a las variables que componen una clase Una instancia de clase con un conjunto definido de propiedades se llama un objeto. Como resultado, la misma clase se puede utilizar para construir tantos objetos como sea necesario. Básicamente, quiero decir, podemos reutilizar nuestras clases para crear múltiples objetos. Es un plano que podemos usar múltiples veces. Ahora la pregunta es, ¿cuál es el beneficio de usar programación orientada a objetos? Se permite romper el programa en los problemas de tamaño de bit que se pueden resolver fácilmente. Y también le sigue seco causarlo. Seco significa que no te repitas. Entenderemos más adelante por qué dije esto. 3. Qué es la encapsulación: Bienvenidos de nuevo, chicos. Este es nuestro primer tutorial relacionado con programación orientada a objetos Python. Y en este tutorial, vamos a aprender concepto de programación orientada a objetos. Concepto de programación orientado a objetos realizado con cuatro pilares. Nuestro primer pilar es la encapsulación, y el segundo pilar es abstracción y el tercero es la herencia, y nuestro último pilar es el polimorfismo En este tutorial, vamos a aprender qué es la encapsulación. Entonces uno a uno, vamos a aprender sobre los pilares. Tratemos de entender cuál es el significado de la encapsulación triunfa sobre la programación orientada a objetos La encapsulación se define como la envoltura de los datos bajo una sola unidad. ¿Cuál es el significado de? Básicamente, usando encapslution, podemos encapsular datos. Veamos un ejemplo y tratemos de entender cuando la encapsulación es útil Supongamos que creamos un total de tres variables, A, B y C. Después de crear la variable, escribimos miles de líneas de código. Después de mil línea de código, por error, creo la misma extremidad variable. Como puede ver, B. Es significa la variable V ya existe en nuestro documento. Va a crear un problema. Algún lenguaje de programación no lo permite. Y algún lenguaje de programación obt la variable y asignar una nueva variable para resolver este problema, utilizamos encapsulación Usando encapsulación, encapsulamos estos datos. Después de encapsular estos datos y después de encapsular estos datos, también los hacemos privados. Después de hacerlo privado, nadie puede acceder a él afuera a menos que estés haciendo permitido. Significa que si redeclare la variable fuera de esta cápsula, entonces actúa como una variable diferente y no va a entrar en conflicto de nuevo con el nombre de la variable Significa que estas variables son trabajo solo para una clase en particular. Y también puedes usar el mismo nombre de variable en una clase diferente. Entonces puedes crear otro nombre de variable usando B. Básicamente, quiero decir que podemos controlar el conflicto de nombres usando encapsulación Espero que ahora te quede claro qué es la encapsulación y vamos a aprender de ello prácticamente en nuestros próximos tutoriales Aquí solo discuto el concepto de programación orientada a objetos. Gracias por ver este video, mantente atento para nuestro próximo tutorial. 4. Qué es la abstracción: Me alegro de verles chicos. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con el programa orientado a objetos Python. En este tutorial, vamos a aprender qué es la abstracción. Como ya les dije, este es el segundo pilar del programa orientado a objetos. Entonces intentemos entender cuál es el significado de la abstracción. abstracción es el concepto de programación orientada a objetos que muestra solo atributos esenciales y alturas de información innecesaria. En lenguaje sencillo, mostrando lo necesario y la altura, lo que no es necesario. No le importa nada más. Sólo necesito los datos necesarios. Por ejemplo, tenemos una computadora y esta hecha con teclado del mouse displaq si quieres mover el cursor, necesitas mover Pero no quiero saber cómo se hizo el ratón. Y lo que hay dentro de la boca. No es necesario para mí. Mi propósito es sólo mover la boca. No quiero saber qué está pasando en el fondo. Lo que hay dentro del ratón se nos oculta. Y en términos de programación orientada a objetos, llamamos abstrción No queremos mostrar información innecesaria al uso. Tratemos de entenderlo de una manera más sencilla. Supongamos que este eres tú y le pides algo de dinero a tu padre. Y es responsabilidad de tu padre traer el dinero, y no necesitas saber de dónde sacó el dinero tu padre. Simplemente creas la demanda y tu padre la abastece. Este concepto de ocultación se llama abstracción. Espero que ahora quede claro para ello. Gracias por ver este video, estén atentos para nuestro próximo. 5. Herencia: Hola chicos me alegro de verte. Una vez más, estoy de vuelta con un nuevo tutorial y en este tutorial, vamos a aprender el tercer concepto de programación orientada a objetos, que es la herencia. En nuestro tutorial anterior, aprenderemos sobre encapsulación y abstracción En este tutorial, vamos a aprender herencia. Este es uno de los conceptos más importantes del programa orientado a objetos. Usamos herencia con objetos de clase. Tratemos de entender qué es la herencia. En palabras simples, herencia significa heredar algo. Quiero decir que conseguir algo de generación en generación se llama herencia. Y si hablo del ejemplo real, obtienes propiedad de tu padre y tu hijo también obtiene propiedad de él. A este mecanismo lo llamamos herederos. Ahora la pregunta es, ¿qué es herencia en el programa orientado a objetos? La herencia nos permite definir una clase que hereda todos los métodos y propiedades de otra clase Ahora intentemos entenderlo en términos más simples con una imagen. Supongamos que este es tu abuelo y tu abuelo poseía muchas tierras en el pasado. A término orientado a objetos, podemos llamar a tu abuelo abuelo clase y luego decide darle todas las tierras a su hijo. Cuando es tu padre. Quiero decir que tu padre obtiene propiedades de tu abuelo, pero tu propio padre posee muchas propiedades. Tu padre compró muchas acciones, tu padre ahora es dueño de dos tipos de propiedades. Para que pueda vender sus tierras y sus propias acciones si así lo desea. Pero tu padre decide transferir sus bienes ancestrales y acciones a tu nombre. Pero tú mismo has hecho mucha propiedad. Tienes mucha criptomoneda. Entonces, si quieres, puedes usar tu propia criptomoneda. De lo contrario, las acciones de tu padre, lo contrario, aterriza tu abuelo. Pero tu abuelo no puede usar la parte de tu padre. Además, tu padre no puede usar tus criptomonedas, pero tu padre puede usar las tierras de su padre, pero tu abuelo no está autorizado para usar las acciones de su hijo. De igual manera, tu padre no puede usar tus criptomonedas, pero tienes que acceder a todas ellas. Puedes usar tierra, puedes usar acciones, y también puedes usar tus propias ypomonedas Básicamente controlamos la repetibilidad usando herencia. Ahora, vamos a entenderlo con término orientado a objetos. Supongamos que la tierra de tu abuelo es una función y la participación de tu padre también es función, no necesitas escribir tanto la función en tu clase infantil. Puedes acceder a él cuando quieras, pero tu abuelo y tu padre no pueden acceder a tus propiedades. Espero que ahora te quede claro lo que es herencia. He tratado de explicarte de una manera muy sencilla. Gracias por ver este video, estén atentos para nuestro próximo. 6. Polimorfismo: Me alegro de verte pero chicos. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. En este tutorial, vamos a aprender último concepto de programación orientada a objetos, que es el polimorfismo La primera pregunta es, ¿qué es el polimorfismo? ¿Y cuál es el uso del polimorfismo en la programación orientada a objetos La palabra polimorfismo significa tener muchas formas. En programación, polimorfismo significa que el mismo nombre de función se usa para diferentes tipos Tratemos de entenderlo de una manera sencilla. Todos hemos hablado con la atención al cliente en algún momento de nuestras vidas. Y cuando llamamos atención al cliente, se nos pide presionar diferente número cuatro tarea diferente. Aquí es exactamente donde funciona el polimorfismo. Supongamos que aquí definimos una función llamada botón de prensa y dentro de esta función, tenemos un total de cuatro bloques, Bloque uno, bloque dos, bloque tres, y bloque cuatro Si presionamos uno, va a llamar a la función, pero va a ejecutar esta declaración de bloque, declaración bloque número uno, y este blog nos va a mostrar el saldo. Del mismo modo, si presionas dos, va a llamar a la función, pero va a ejecutar esta sentencia de bloque, y va a devolver validez. Similar para los datos de Internet, necesitamos presionar tres, y si quieres platicar con el ejecutado de atención al cliente en ese caso, necesitas presionar cuatro Aquí solo tenemos una función, pero puede mostrar diferentes resultados de acuerdo a la entrada. Según la entrada, esta función va a elegir qué bloque usuario quiere ver, y luego polimorfismo, ejecutar el bloque particular en mí Este es el concepto de polimorfismo. Vamos a conocer más al respecto en nuestra sesión práctica. Aquí solo trato de presentarte cuál es el concepto de programación orientada a objetos. Gracias por ver este video, estad atentos para nuestro próximo estudio. 7. Creación de nuestra primera clase en Python: Él en mis tutoriales anteriores, te presento lo que es la programación orientada a objetos, y cuál es el concepto de programa orientado a objetos. Pero hoy a partir de este tutorial, vamos a iniciar nuestro recorrido práctico. En este tutorial, voy a crear nuestra primera clase y objeto. Como pueden ver, estoy en mi coordinador de Visual Studio y ya creo un archivo Python main dot pi aquí voy a crear una clase. Ahora la pregunta es ¿por qué usamos la clase? Reducimos la repetibilidad usando clase y las clases son muy útiles para organizar nuestro código. Vamos a crear una clase. Para crear una clase, ¿no escribirías más palabra clave, clase? Entonces tenemos que pasar un nombre de clase. En nuestro caso de estudio. Y luego necesitamos usar colon. Básicamente, aquí voy a crear una clase sencilla, y dentro de esta clase, simplemente voy a escribir pass. Por ahora, no quiero liberar ningún dato en mi clase. Por eso uso el pase. De lo contrario, va a devolver cero. Pasar no significa nada. Dentro de esta clase, no creo ninguna plantilla. Ahora está completamente en blanco. Generalmente, escribimos algún código dentro de la clase. Pero por ahora, hay que asumir que esta es una plantilla completa, y ahora somos dos estudiantes. Nuestro primer nombre de estudiante es A one. Y quiero burlarme de mi alumno usando esta clase, voy a llamar al nombre de la clase y a nuestro nombre de clase es estudiante Y luego necesitamos usar tirantes redondos. Tenemos otro alumno que se hace con la misma clase. Voy a duplicar esta línea y nuestro nombre de alumno es Smith. Como puedes ver, asignamos la clase tanto del alumno, Ad uno como Smeed. Básicamente, creamos dos objetos usando esta clase. Nuestra clase nunca está vacía. Siempre llenamos algunos datos en esta clase, pero este es nuestro primer tutorial, así que no quiero digal. Como ya les dije, estos son dos objetos distintos ahora. Deja que te lo demuestre. Aquí voy a escribir Prent dentro de las bases redondas, voy a llamar a estas dos variables Ad uno y Smet Aquí voy a escribir agregar uno y luego voy a llamar a Smith. Si ejecuto mi código, después de ejecutar el código, puedes ver, ahora tienes que objetar en diferente ubicación de memoria, objeto punto Mindtstudent en esta ubicación y man doot student dot object en Ahora está despejado, estos son dos objetos diferentes. Ahora voy a crear una variable de instancia usando estos dos objetos. Pero el cociente es, ¿qué es la variable de instancia? Básicamente, quiero decir que podemos establecer variables en este objeto. Déjame mostrarte. Al principio, voy a agregar variable de instancia en este objeto, agregar una. Nombre del punto del anuncio igual a dentro del código doble agregue uno. El nombre del alumno es el anuncio uno. Ahora voy a decir otra variable, que es agregar un punto g igual a 21. También voy a agregar otra variable de instancia al Advan que es la sección Advant Quiero escribir adv punto sección igual a uno. Como puedes ver, pasamos tres variables de instancia a este objeto. Ahora, vamos a matar el terminal e imprimir agregar un nombre de punto, luego establecer este archivo y ejecutar este código. Ahora lo puedes ver imprimir agrega uno. Está escrito el nombre de la variable de instancia. De igual manera, si imprimo agrego un punto, edad, y luego configuro el archivo y ejecuto el código, ahora puedes verlo imprimir 21. Pasamos tres variables de instancia a este objeto. Podemos hacer lo mismo con Smith y también podemos agregar diferentes variables de instancia a Smith. Déjame mostrarte. Entonces voy a duplicar estas líneas y aquí, voy a quitar el Advance, voy a escribir Smith smith punto n, Smithsmth punto H. Que es 23, y no quiero agregar sección a Quiero agregar la altura de Smith. Voy a teclear la altura de Smit. Dentro del doble curso, voy a pasar 160 centímetros. Ahora quiero imprimir Advantage y Smith altura. Voy a usar coma y quiero escribir Smith Smith punto altura Si configuro este archivo y ejecuto el código, como pueden ver, ahora sprint 21 desde Advantage y 160 centímetros desde la altura de Smith. Pero si paso sección de punto smith, déjame mostrarte y esto en este archivo, y luego el código, ahora puedes ver que está escrito error porque no pasamos sección variable instantánea para Smith. Entonces normalmente es error escrito. Pero generalmente, creamos una plantilla en nuestra clase y establecemos todas las variables necesarias a esta plantilla, nombre, estándar, sección, cualquier variable que necesitemos, y podemos pasar cualquier tipo de tipo de datos en nuestra Podemos pasar el número de cadena, lista, etcétera. Entonces esta es una simple introducción de clase. Creamos dos objetos usando esta clase, y el nombre de nuestra clase es student. Adwan y Smith ambos se derivan de la clase estudiantil, y ahora son objeto Y también, aprendemos cómo podemos establecer variable de instancia a nuestro objeto. Esta es la introducción muy básica de clase y objeto, y desde nuestro siguiente tutorial, vamos a sumergirnos profundamente en él. Vamos a aprender qué es la variable de clase , qué es constructor, qué es constructor alternativo, método estático, encapsulación de abstracción, etcétera Así que gracias por ver este video, estén atentos 8. Diferencia entre la variable de instancia y la variable de clase: Pelea. A verles chicos. Una vez más, estoy de vuelta con un nuevo tutorial, relacionado con la programación orientada a objetos Python. En nuestro tutorial anterior, aprenderemos sobre qué es la variable de instancia. En este tutorial, vamos a aprender sobre qué es la variable de clase. Si configuro este archivo y ejecuto este código, como pueden ver, va a devolver esta edad de estudiante. Como te dije en nuestro tutorial anterior, es una variable de instancia. Esta variable solo se trabaja para este objeto en uno, y ahora voy a crear una variable que va a funcionar en cada objeto. Para crearlo, necesitamos usar la variable de clase. Pero la pregunta es ¿por qué necesitamos usar la variable de clase? Porque nuestro objeto generado a partir de esta clase, nuestro objeto creado a partir de esta clase. Por eso necesitamos usar cada uno. Entonces ahora necesitamos una variable que ya esté en la plantilla. Entonces voy a crear una variable dentro de esta clase de estudiante, y nuestro nombre de variable es número de hojas. Subrayado numérico o saltos de subrayado. Entonces usamos una variable de clase en nuestra clase de estudiante. Si imprimo, agregue un punto número de hojas y luego establezca este archivo y ejecute el sce Como pueden ver, ahora está escrito cola. Esta no es propiedad personal de este objeto. Este valor proviene de la clase estudiantil, que es la para todo este objeto. Si imprimo Smith número de punto deja, déjame mostrarte sm número de punto Bleips y luego establecer este archivo y ejecutar este se Ahora se puede ver también que devuelve cola porque tanto el objeto directo de esta clase. Podemos acceder a la propiedad de clase usando object. No solo objeto, se puede acceder a esta variable también desde la clase. Déjeme mostrar. Si paso estudiante aquí, déjame mostrarte estudiante punto número de hojas y luego establecer este archivo y ejecutar este código. Como puedes ver, está escrito tan Si quieres cambiar el valor, no puedes cambiar el valor de ningún objeto. Se puede cambiar a través de la clase solamente. Déjame mostrarte. Intentemos cambiar el número de saltos usando el objeto Smith Aquí voy a escribir Smith punto número de saltos, igual a cinco Si imprimo la misma declaración después de ella, déjame mostrarte y ellos establecerán este archivo y ejecutarán mi código. Como puedes ver, no cambias. No podemos cambiar el valor de la variable de clase de un objeto, pero esta línea crea una variable de instancia para el objeto Smith. Si comento esta línea y si imprimo, dije las prensas redondas, Smeth puntear número de leads y luego establecer este archivo y ejecutar la cotización Ahora puedes ver que está escrito cinco porque esta línea crea una nueva variable de postura para el objeto Smith. Por eso está escrito cinco. Por eso sobrescribe la variable de clase, y se escribe cinco Pero si te das cuenta puedes ver nuestra variable de clase aún escrita a. déjame demostrarte eso. Voy a matar a la terminal y comentar las dos líneas. Ahora voy a llamar a un atributo, que es atributo diccionario, atributo dict. Aquí voy a escribir print dentro de los versos redondos, voy a llamar add sco, dt. Además, voy a conseguir esta línea, y esta vez, la voy a correr por velocidad. Si configuro este archivo y ejecuto el código, ahora se puede ver en el objeto Advance, tenemos un total de tres propiedades de rueda. Pero en el objeto Smith, tenemos que decir cuatro valor de propiedad. El valor adicional es número oblito cinco porque pasamos esta variable de instancia Recuerda, no puedes cambiar propiedad main clus a través de un objeto Quiero decir que puedes cambiar valor de la variable de clase a partir de la clase en mí. Esta es una clase opic de propiedad y es parte de la plantilla Básicamente, va a compartir este valor todos los objetos que hace esta clase y nuestro nombre de clase es Spubal Espero que ahora quede claro para ti, cuál es la diferencia entre clase y variable de instancia. Gracias por ver este video. Estén atentos para nuestros dos próximos. 9. Yo y el init (constructores): Hola, chicos. Me alegro de verte ahí. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. En este tutorial, vamos a aprender auto y subcoe innit En nuestro tutorial anterior, aprenderemos sobre qué es la variable de instancia y qué es la variable de clase, y cuál es la diferencia entre estas dos variables. Entonces primero, voy a crear un método dentro de esta clase. Voy a quitar pase. Como ustedes saben, los métodos son función. Aquí voy a escribir Dave y nuestro nombre de función es pin details. Entonces dentro de la rotonda voy a usar una palabra Q, que es self es un parámetro A continuación, inserte esta función. Por ahora, aquí, voy a teclear pase. Ahora el cociente es lo que es yo? Self significa el objeto que hizo con esta clase. Supongamos que quiero ejecutar la función de detalles de impresión para Adan, adv dot print details En ese caso, yo sería AdVan. Para que se rasgue, voy a devolver un comunicado. Aquí voy a escribir return, return, y voy a usar stream. Cadena dentro de los códigos dobles, Nombres. Es en el Calviss ahora quiero acceder al objeto adv usando self Aquí voy a pasar nombre de autopunto. Como puede ver, pasamos una variable instantánea a un nombre de punto. Esto significa que va a regresar con un solo nombre. Como voy a imprimir edades yo en el Cali Vss self dot H. Sólo darle a entender yo significa el objeto sobre el que va a invocar la función Llamemos a la función e intentemos imprimir los detalles de AdVan. Aquí voy a escribir print y dentro de los latones redondos, voy a escribir Ad one dot print details Vamos a establecer el código y ejecutarlo. Como pueden ver en mi terminal, es nombre impreso es anuncio, g es 21. Pero si te das cuenta, puedes ver, no pasamos ningún parámetro en función de detalles de impresión. Este es el uso del método auto. Se puede identificar el objeto, y también podemos acceder a la variable instes de objeto usando la celda Del mismo modo, si quieres imprimir los detalles de Smith, entonces necesitas hacerlo en esta línea y aquí necesitas pasar el nombre del objeto Smith. Smith. Si configuro este archivo y comento este y lo configuro de nuevo y ejecuto el código, ahora puedes ver en mi terminal, es nombre impreso es Smith edades 23. Esta es la regla de la programación orientada a objetos. Por defecto, va a enviar este objeto como parámetro. Deja que te lo demuestre. Si me quito auto de él y luego configuro este código y lo ejecuto, como puedes ver, es error escrito. Pero sprint, la impresión de punto estudiantil toma cero argumento posicional, pero se le dio uno Quiero decir, por defecto, envía un argumento a esta función. Por eso necesitamos usar L para manejar este argumento. S aquí queremos volver a pasar SLT. Espero que ahora te quede claro lo que es yo. De esa manera, implementamos métodos en nuestra clase y puedes crear múltiples métodos tanto como quieras. Ahora vamos a aprender qué es construir. Como puedes ver, cuando creamos el objeto, manualmente, necesitamos pasar las variables de instancia a este objeto. Pero, ¿qué? Si pasamos el argumento a la clase estudiantil y a través de este argumento, podemos para los valores nombre avanzar H 21, sección uno, entonces sería genial. Déjame mostrarte lo que quiero decir. Entonces voy a comentar estas líneas. Quiero enviar argumento a esta clase. Déjame mostrarte. Al principio, tenemos que pasar el nav, nombre, agregar uno. Edad 21, sección uno, así. Pero si configuro este archivo e imprimo, adv dot name, déjame mostrarte adv dot name y ejecutar este código Como puedes ver, es un error escrito. Como puede ver, nuestros alumnos de clase no manifiestan argumentos. El proceso de pasar argumentos a una clase se llama constructo, y para pasar argumentos en nuestra clase, necesitamos crear Init constructo, y para usar el método init, necesitamos escribir Do undersco int, IN IT y su pila L como Ahora podemos aceptar la variable de instancia como argumento. Para eso, después de la celda, necesitamos pasar las variables adentro. Nombre. Nuestra segunda variable es H, y nuestra tercera variable es alta. Como te dije, self significa el objeto, y es un método constructor. Su vena usándola construirá el objeto. Ahora dentro de su constructor, voy a crear la variable de instancia usando estos argumentos. Déjame mostrarte. Aquí voy a escribir self dot name. Nuestro nombre de variable es nombre, asignamos con nuestro argumento, que es nombre. Recuerde, esto es variable y este es el nombre del parámetro. Se puede utilizar un nombre de parámetro diferente. Aquí me voy a pasar nombre de alumno, estudiante H es estatura, estatura de estudiante. Ahora necesitamos asignar este nombre con esta variable Nin ahora voy a crear otra variable de instancia para estudiante H y estatura del alumno. Voy a escribir Sil punto H igual a ish y la altura del limo igual a es alta Ahora somos capaces de enviar argumentos cuando creamos el objeto. Aquí voy a pasar la altura. Altura. Es el doble curso 156 centímetros. Para Smith, voy a pasar Neil Smith Smith de 23 años y Smith Heid es 170 1 centímetro Ahora quiero llamar a prin ditalsFunction Pero antes quiero agregar altura en nuestra declaración de retorno, así que voy a escribir y la altura está dentro de la altura del punto de cariverss S Si configuro este archivo, y si llamo ad one punto, imprimo detalle y ejecuto el sce, como pueden ver, gire todos los detalles del anuncio uno Nombre es Anuncio una edad es 21, y la estatura es de 156 centímetros. Del mismo modo, si llamo a esta función para Smith y configuran este archivo, Smith dot pin detalles. Y luego establecer este archivo y ejecutar la partitura. Ahora se puede ver el nombre del sprint es frotis g es 23 y la altura es 170 1 centímetro Yo uso constructor, entonces podemos enviar datos como argumento. De lo contrario, no podemos enviar datos en nuestra clase como argumento. Va a regresar. Como puede ver, estos argumentos van al método init Después asignamos este parámetro en esta variable. Para nombre usamos variable de nombre. Para SH, usamos la variable, y para una altura, usamos la variable de altura. Podemos acceder a toda esta variable en nuestra función print tal usando L, l nombre del punto l.hl punto h. me vuelvo loca glarfy lo que sigue siendo constructor. Gracias por ver este video, estén atentos para nuestros próximos dos odio. 10. Métodos de clase en Python: Es bueno verlos una vez más estoy de vuelta con un nuevo tutorial relacionado con el programa orientado a objetos Python. En este tutorial, vamos a aprender qué es el método de clase. En nuestro tutorial anterior, aprenderemos sobre cuál es el uso del sintetizador y qué es constructor Pero en este tutorial, vamos a aprender sobre el método de clase. ¿Qué es el método de clase? En una oración, un método de clase es un método que está vinculado a una clase en lugar de a su objeto. Déjame simplificarlo. Pero antes, como puedes ver, creamos dos variables de instancia usando esta clase, agregamos una y Smed. Por ahora, voy a quitar las líneas innecesarias. No lo necesito. Déjenme darle una situación para la manifestación. Supongamos que desea cambiar la variable de clase. Quieres cambiar el número de bleps diez a 15, si quieres cambiar las variables de clase, como te dije, no puedes cambiar la variable de clase de la instancia Para eso, hay que cambiarlo de esta clase. Y si quieres cambiarlo desde la instancia, va a crear una nueva variable de instancia, pero no puede abrir la variable de clase Supongamos que dentro de esta clase, quiero crear una función y a través de esta función, quiero cambiar el número de bleps No quiero cambiar el número de hojas a través de una variable. Quiero cambiarlo de una función. Para eso, necesitamos usar el método de clase. Y como te dije, el yo es necesario cuando creamos una función dentro de la clase, pero quiero aboar esta celda Para eso, necesitamos usar un decorador. Entonces aquí voy a usar un decorador de método de clase, el amortype de línea Nick en el método de clase de tasa Se trata de un decorador. Ahora la pregunta es ¿qué es decorador en Python En una oración, un decorador es un patrón de diseño en Python que permite a un usuario agregar nueva funcionalidad a un objeto existente sin modificar su estructura Después de llamar a este decorador, voy a crear la función Aquí voy a escribir DF y nuestro nombre de función es cambiar saltos Entonces tipo cambio. Subrayar saltos. Entonces dentro de los vestidos redondos, esta vez, no paso L, y voy a llamar a un nuevo parámetro, que es CLS Ahora la pregunta es ¿qué es CLS? CLS significa la clase que inculca es este objeto, SM. Con eso, voy a tomar otro argumento, que son nuevas hojas. Nuevas hojas de subrayado. Y dentro de esta función, voy a escribir clase punto clase punto, número de hojas igual a hojas nuevas No quiero volver a nada. Este método de clase permite cambiar saltos a través de la variable de instancia Déjame mostrarte. Aquí, quiero decir nuevos saltos. Voy a escribir, agregar un punto, y nuestro nombre de función es cambiar saltos Aquí tenemos que pasar sólo un argumento, Nuevos saltos y voy a poner 35 Si imprimo adv número de saltos, déjame mostrarte anuncio un punto número de Acepta este archivo y ejecuta este código, como puedes ver, está escrito 35. Como puedes ver, cambiamos la variable de clase usando el método class. Podría pensar que esta línea crea una nueva variable de instancia para este objeto avanzado. No, no lo es. También podemos acceder con Smith. Aquí voy a pasar a Smith. Números de punto Smith. Como puedes ver, por defecto, el número de licencia es diez, y como puedes ver, accedemos a él desde una variable de instancia, Smith. Si configuro este archivo y ejecuto este código, ahora puedes ver que también está escrito 35, pero aquí puedes ver, cambiamos el número de licencia usando en una instancia, no esta instancia Mth, pero también es trabajo para SMT No sólo eso, también podemos acceder con pase de clase II, pelo de estudiante, estudiante estudiante punto número de saltos y establecer este archivo y ejecutar este código Como pueden ver, está escrito 35, no diez. Este es el uso del método de clase. Se nos permite cambiar la clase usando variable de instancia. Gracias por ver este video. Estén atentos para nuestro próximo tutorial. 11. Métodos de clase como constructores alternativos: bueno verles chicos. Una vez más, estoy de vuelta con un nuevo tutorial relacionado Python orientado a objetos poema. En nuestro tutorial anterior, aprenderemos sobre cómo podemos crear el método de clase. Pero en este tutorial, vamos a aprender, ¿cómo podemos usar el método de clase como constructor alternativo? Cómo se puede crear instancia usando el método de clase. En nuestro tutorial previas, creamos una función llamada change leaf. Si cambio hoja usando agregar uno, también reflexiono sobre el número de hojas de Smith. Porque usando este método de clase, cambiamos la variable de clase. No cambio el valor de la variable de instancia. Es cambiar el valor de la variable de clase. Veamos cómo podemos usar método de clase como constructor alternativo. Al principio, dentro de esta clase, voy a declarar un método de clase. Agrega el método de lectura de clase. Entonces, ¿qué? Si creamos un objeto por una cadena, y no necesitamos pasar ningún parámetro como este. Aquí voy a crear una función. W y nuestro nombre de función es de Estrella bajo sco Tia. Esto significa cadena. Entonces dentro de las prensas redondas, nuestro primer argumento es la clase. Nuestro siguiente argumento es string, quiero pasar una cadena y esta función y esta función van a convertir esta cadena en un objeto como Edwin y Smith Quiero decir, quiero crear un constructor. Permítanme simplificarlo más. Por ahora, dentro de esta función, voy a escribir pass, y quiero crear otro objeto. Para este objeto, voy a tomar voy a tomar a Oliver como nombre. Oliver igual a, y ella también es alumna. Voy a llamar a nuestro alumno de clase. Entonces dentro del vestido redondo, no quiero pasar ningún parámetro Ahora quiero pasar una cadena sencilla. No quiero pasar parámetro como este usando coma entre ellos. Al principio en nuestra cadena, voy a pasar nombre de estudiante Oliver. Entonces voy a pasar H, pero esta vez, no voy a usar coma Esta vez, voy a usar el letrero de tablero. Tiene 24 guiones de altura es de 154 centímetros. Así que básicamente, puedes verla paso un solo parámetro como un stream, pero esta función va a convertir este parámetro en un objeto. Además, esta función va a identificar el nombre del alumno, edad del estudiante y la estatura del alumno. Pero el problema es, si cambio de constructor, entonces las dos líneas no van a funcionar correctamente, no va a agregar el objeto. Va a devolver una flecha. Además, va a devolver flecha si ejecuto este archivo ahora. Déjeme mostrar. Si ejecuto este archivo, como pueden ver, es una flecha. Aquí puedes ver en nuestro mensaje, parece que requerimos argumento posicional, H y es altura porque aquí pasamos solo un parámetro Para resolver este problema, voy a llamar a esta función. Voy a copiar el nombre de la función de STR y después de estudiante, voy a usar punto de la función STR. Ahora bien esta función va a tomar este argumento como una cadena. Entonces primero, dentro de esta función, voy a tomar una variable, y voy a tomar la variable n IM. Elemento igual a, y voy a llamar a esta cadena de cadena variable punto. Además, voy a llamar al método name split. Dividir. Y dentro del latón redondo, tenemos que pasar la letra o el letrero. Aquí, quiero dividir esta cadena del seno D. Por eso paso esta señal. Esta función divide nuestra cadena en tres partes, Oliver 24 y 154 centímetros y devuelve una nueva lista. Entonces voy a devolver a CLs CS hombres el objeto con el que trabajamos Después dentro del latón redondo y aquí quiero devolver todos los números de artículos que obtenemos de esta cuerda. Elemento tipo hemo en su lugar la prensa cuadrada es el número de índice, cero Como ya sabéis, nuestra lista, empieza con índice cero. Por eso nuestro primer número de índice es cero. Entonces voy a pasar el ítem uno y el ítem dos. Tipo de vergüenza, yo soy, Es la prensa cuadrada es una. Coma, lo soy. Establecer el latón cuadrado dos. Ahora bien esto de la función Tier va a volver a este resultado a este objeto. Cuando creamos esta instancia de hígado usando esta función de clase de STR, entonces primero va a enviar esta cadena en esta función desde STR, luego dividir la cadena usando este signo. Creo un total de tres último ítem y vuelvo a esta instancia nuevamente a través de esta clase. Quiero decir que va a devolver el mismo resultado así. Si imprimo Oliver, voy a comentar esta línea moto tipo print dije que las rondas es Oliver, Oliver punto H. Y establecer este archivo y ejecutar el código en mi terminal. Como pueden ver, está escrito el borde 24, y aquí se puede ver en mi cuerda, el borde es 24. Creamos un constructor alternativo usando esta función de STR, pero aquí necesitamos usar el método de clase. Aquí creamos un constructor alternativo que toma argumento de cadena, y es convertir esta cadena en un objeto. Recuerda, aquí puedes pasar cualquier señal. Si tus datos están divididos por slash, déjame mostrarte slash, y también necesito cambiar el slash Si configuro este archivo y ejecuto este código, como pueden ver, también es trabajo. Espero que ahora puedas entender cuál es el uso del método de clase y cómo podemos crear un constructor alternativo usando el método de clase. Esto es para este tutorial. En nuestro próximo tutorial, vamos a aprender qué es el método estático. Gracias por ver este video declarando. 12. Métodos estáticos en Python: Me alegro de verles chicos. Una vez más, estoy de vuelta con el nuevo tutorial relacionado con el programa orientado a objetos Python. En este tutorial, vamos a aprender qué es el método estático. En nuestro tutorial anterior, aprendemos cómo podemos usar el método class como constructor alternativo. Supongamos que ahora quiero un método simple, no por ejemplo variable, no para variable de clase. No quiero exceso de variable de instancia , de lo contrario variable de clase. Yo sólo quiero poner un método dentro de una clase. Supongamos que quiere imprimir algo después de lo contrario. Para eso, puedes usar un método estático. Déjame mostrarte. Similar al método de clase, necesitamos usar un decorador para crear un método estático Aquí, necesitamos escribir a la velocidad método estático. Y dentro de este método, quiero imprimir una declaración. Aquí voy a crear una función. Dave, y nuestro nombre de función es pinta hola. Pinta, guión bajo, hola. Entonces dijiste los vestidos redondos, voy a pasar una corriente de parámetros. Entonces recupero esta función, y aquí voy a escribir pin dije las direcciones redondas, dije los códigos dobles, hola y bienvenidos Entonces voy a usar cóncavo y signo y voy a pasar el flujo de parámetros. Entonces quiero crear una función que no va a tomar yo como argumento, lo contrario, clase como argumento. No está directamente relacionado con este objeto. Ahora la pregunta es ¿por qué lo ponemos en una clase? ¿Por qué necesitamos usar el método estático? Porque quiero ejecutar esta función solo para este objeto. Es por eso que necesitamos crear método estático. Yo solo quiero ejecutarlo para objeto estudiante. Llamemos a la función usando instancia. Aquí, voy a llamar a esta función print Smit dot print hola, imprimir hola Además, tenemos que pasar un argumento. En cambio el doble curso, voy a pasar olor. Así que vamos a establecer el archivo y ejecutar la función. Como pueden ver en mi terminal, se imprime. Hola, bienvenido Smith. Necesitamos proporcionar un espacio después de la bienvenida. Entonces quieres configurar este archivo, y otra vez, lo ejecuto, como puedes ver, hola y darle la bienvenida a Smith. Pero el cociente es que está escrito monja porque no devolvemos nada en Por eso está escrito monja. Si escribo return keyword, return, y aquí, voy a escribir dentro de los códigos dobles altos. Si configuro este archivo y ejecuto este se, como pueden ver, los nerds regresan alto Puedes pasar cualquier cosa cualquier valor, lo contrario cualquier variable que quieras devolver, y no quiero devolver nada en nuestro método estático. Por eso voy a quitar esta línea. Voy a establecer este archivo. Para aumentar la eficiencia, necesitamos usar el método estático. De lo contrario, por defecto, toma l como parámetro. Si no hay uso de SL, en ese caso, se puede utilizar el método estático. Y recuerda, también puedes llamar a esta función con la clase estúpida. Espero Nerds claro para ti cuál es el uso del método estático Así que gracias por ver este video. Estén atentos para nuestro próximo estudio. 13. Qué es la abstracción y la encapsulación: Hola chicos, es bueno volver a verles. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. En este tutorial, vamos a aprender qué es la abstracción y la encapsulación. Ya lo aprendemos en nuestra sección de introducción. Entonces, recapitulemos el video y tratemos de entender qué es la abstracción abstracción es el concepto de programación orientada a objetos que muestra solo atributos esenciales y alturas de información innecesaria. En lenguaje sencillo, mostrando lo necesario y la altura, lo que no es necesario. No le importa nada más. Sólo necesito los datos necesarios. Por ejemplo, tenemos una computadora y está hecha con mouse teclado display ski. Si quieres mover el cursor, necesitas mover la boca. Pero no quiero saber cómo se hizo el ratón y qué hay dentro de la boca. No es necesario para mí. Mi propósito es sólo mover la boca. No quiero saber qué está pasando en el fondo. Lo que hay dentro del ratón se nos oculta, en términos de programación orientada a objetos, lo llamamos abstrucción No queremos mostrar información innecesaria al usuario. Tratemos de entenderlo de una manera más simpar. Supongamos que eres tú y le pides algo de dinero a tu padre, y es responsabilidad de tu padre traer el dinero, y no necesitas saber de dónde sacó el dinero tu padre. Simplemente creas la demanda y tu padre la abastece. Este concepto de ocultación se llama abstracción. Entonces, en términos simples, abstracción significa dividir partes. Aquí puedes ver, creamos una clase solo para estudiantes. De igual manera, podemos crear clases para profesores también. Supongamos que si quieres especificar una definición de escuela, una escuela consiste en maestro, alumno y personal. Entonces podemos crear un profesor particular de clase, alumno y personal, pero no quiero saber todo el nombre del alumno, todo el nombre del maestro y todos los nombres del personal Solo quiero datos de segmentos particulares. No quiero saber cómo el maestro enseña a su alumno. Sólo quiero datos de profesores. Entonces la confusión es que el estudiante es una capa de abstracción. De igual manera, maestros y talón también. Yo creo clase de estudiante, tú creas clase de profesor y alguien crea clase stub, y no tengo ningún interés Lo que escribes dentro de la clase del profesor. Yo sólo quiero usar esta clase. Esto se llama abstracción. Ahora, hablemos de la encapsulación. ¿Qué es la encapsulación? La encapsulación se define como la envoltura de los datos bajo una sola unidad ¿Cuál es el significado de ello? Básicamente, usando encapsulon podemos encapsular datos. Veamos un ejemplo y tratemos de entender cuando la encapsulación es útil Supongamos que creamos un total de tres variables, A, B y C. Después de crear la variable, escribimos miles de líneas de código. Después de mil líneas de código, por error, creo el mismo nombre de variable. Como puede ver, B. Significa que la variable V ya existe en nuestro documento. Va a crear un problema. Algún lenguaje de programación no lo permite. Y algún lenguaje de programación obt la variable y asignar una nueva forma Entonces, para resolver este problema, utilizamos encapsulación. Usando encapsulación, encapsulamos estos datos. Después de encapsular estos datos y después de encapsular estos datos, también los hacemos privados. Después de hacerlo privado, nadie puede acceder a él afuera a menos que estés haciendo permitido. Significa que si vuelves a declarar la variable fuera de esta cápsula, entonces actúa como una variable diferente y no va a entrar en conflicto con el nombre de la variable de nuevo. Significa que estas variables son trabajo solo para una clase en particular. Y también puedes usar el mismo nombre de variable en una clase diferente. Y luego puedes crear otro nombre de variable usando B. Básicamente, quiero decir que podemos controlar el conflicto de nombres usando encapsulación Aquí puedes ver que creamos un número variable de vueltas y quiero ejecutar esta variable solo para clase de estudiante, no para características No quiero crear esta variable global. Solo quiero acceder a él a través de esta clase solamente. De igual manera, quiero ejecutar la función de detalles de impresión solo para alumnos, no para profesores y staps Entonces necesitamos encapsular estos datos. Espero que ahora te quede claro. Gracias por ver este video, Estén atentos para nuestro próximo. 14. Introducción a la herencia en Python: Bienvenidos de nuevo, todos. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. Y en este tutorial, vamos a aprender qué es la herencia. En nuestro tutorial anterior, aprenderemos sobre abstrucción y Pero en este tutorial, vamos a aprender herencia. Ahora la pregunta es qué es herencia, palabra simple, heredar significa heredar algo de generación en generación Quiero decir que conseguir algo a generación en generación se llama herencia. Vamos a aclarar el concepto. La herencia nos permite definir una clase que hereda todos los métodos y propiedades de otra clase Ahora, tratemos de entenderlo en términos más simples con una imagen. Supongamos que este es tu abuelo y tu abuelo poseía muchas tierras en el pasado. A término orientado a objetos, podemos llamar a tu abuelo Gen clase de padres y luego decide darle todas las tierras a su hijo. ¿Cuándo es tu padre? Quiero decir que tu padre obtiene propiedades de tu abuelo, pero tu propio padre era dueño de muchas propiedades. Tu padre compró muchas acciones. Entonces tu padre ahora es dueño de dos tipos de propiedades, para que pueda vender sus tierras y sus propias acciones si así lo desea. Pero tu padre decide transferir sus bienes ancestrales y las acciones a tu nombre. Pero tú mismo has hecho muchas propiedades. Tienes mucha criptomoneda. Entonces, si quieres, puedes usar tu propia criptomoneda. De lo contrario, las acciones de tu padre, lo contrario, aterriza tu abuelo. Pero tu abuelo no puede usar la parte de tu padre. Además, tu padre no puede usar tus criptomonedas, pero tu padre puede usar las tierras de su padre, pero tu abuelo no está autorizado para usar las acciones de su hijo. De igual manera, tu padre no puede usar tus criptomonedas, pero tienes que acceder a todas ellas. Puedes usar la tierra, puedes usar acciones, y también puedes usar tus propias criptomonedas. Básicamente controlamos la repetibilidad usando herencia. Ahora, vamos a entenderlo con término orientado a objetos. Supongamos que la tierra de tu abuelo es una función y la participación de tu padre también es función. No es necesario que escriba tanto la función en su clase infantil. Puedes acceder a él cuando quieras, pero tu abuelo y tu padre no pueden acceder a tus propiedades. Espero que ahora te quede claro lo que es herencia. He tratado de explicarte de una manera muy sencilla. Así que aquí se puede ver, de nuevo, estoy de vuelta a mi coordinador de Visual Studio, y abro mi archivo punto principal Pi. Aquí puedes ver, creamos una clase llamada student, y contiene algún método de clase, método estático, constructor y función. También puedes ver que creamos un total de tres instancias usando esta clase Advanced meth y Oliver. Supongamos que todos son alumnos de tu escuela, pero hay algunos alumnos a los que les encanta el programa. Quiero crear una clase llamada programador. Aquí voy a mecanografiar programador de clase. Programador. Programador también es estudiante, pero quiero agregar algunas propiedades extra a la clase de programador. Quiero agregar qué lenguaje de programación conocen. Con eso, quiero acceder a todas las propiedades, métodos de clase, métodos estáticos, funciones de la clase de estudiante. Para ello, sólo tenemos dos métodos. Podemos copiar toda la sección y pegarla y modificarla en nuestra clase de programador. Este proceso no tiene ningún sentido porque entonces no seguimos el concepto de reutilización de código Para resolver este problema, necesitamos heredar esta clase con esta clase Quiero heredar clase de programador con clase de estudiante aquí, voy a realizar herencia de un solo nivel Simplemente, una clase hereda con otra clase. Dentro del receso redondo, voy a escribir nuestro nombre de clase alumno. Entonces dentro del nivel de sangría por ahora, voy a escribir pass Ahora, la clase programador puede acceder a todas las propiedades de la clase de estudiante, también a su método de clase de funciones, y ahora voy a crear una instancia usando la clase programador. Déjame mostrarme. Entonces aquí voy a crear una variable, y nuestro nombre de variable es Rohan Rohan, igual a, pero esta vez, voy a llamar a clase de programador, programador Y dentro del receso redondo, necesitamos pasar un total de tres parámetros. Nombre del alumno, edad del estudiante y estatura del alumno. Elemento tan sencillo para pasar nombre de alumno, Rohan. Y tiene 21 años, y su estatura es de 170 centímetros. Por ahora, voy a quitar estas líneas. No lo necesitamos. Y luego voy a crear un método, y después voy a agregar un método en nuestra clase de programador, que va a imprimir todos los detalles del programador. Entonces aquí voy a escribir Dave y nuestro método nombre es print prog mean print programmer details Print, undiscoePG luego dentro de las rotondas por defecto, toma self Entonces aquí tenemos que pasarnos a sí mismos. Entonces dentro de esta función, quiero devolver la misma línea o función de detalles de impresión. Voy a copiar esta línea, y voy a pegarla aquí. Ahora, la clase de programador puede acceder en el método dientes clase estudiante con la clase programador tienen su propio método de impresión prong En esta declaración de retorno, voy a escribir nombres de programador, programador. El nombre del programador es silbdtnsldt g, y sl punto h. ahora quiero imprimir esta función Déjame mostrarte. Aquí voy a escribir print, imprimir dentro de los vestidos redondos Quiero imprimir los detalles de Ran. Aquí voy a escribir Rohan. Rohan, punto, y quiero ejecutar Imprimir Pg. Además, puedes ver todos los nombres de funciones que podemos ejecutar en nuestra instancia. Imprimir hola, cambio dejar, de er, número pitidos Estos son todos de la clase de estudiante, no de la clase de programador, pero aquí quiero ejecutar la función Print Prog Entonces si dirijo esta escuela, como pueden ver en mi terminal, programador de impresión num es Ran, como 21, y la altura es de 17 centímetros. Este es el ejemplo de un solo nivel en hitans. Entonces este es el ejemplo de las alturas de un solo nivel. Pero ahora quiero ejecutar otro programa, Rohan dot print Detalles Este método es de clase de estudiante, y si ejecuto este boum, como pueden ver, funciona con éxito El nombre es Rohan, de 21 años, y la altura es de 170 centímetros Para que Rohan pueda acceder a su propia propiedad de clase, también propiedad de clase estudiantil Pero si trato de imprimir la función prop para Oliver, veamos. Voy a duplicar esta línea y comentar la anterior. Aquí voy a pasar a Oliver. Oliver dot, y nuestro nombre de función es Prorogue de impresión. Imprimir, subrayado Pg. Si configuro este archivo y ejecuto este código, como puedes ver, es error escrito. Está escrito objeto estudiante no tiene ningún atributo print prog o instancia hecha con clase de estudiante Es por eso que solo puede acceder a propiedad y métodos propios, no a la propiedad y métodos del programador. Pero Rohan, quien hizo con clase de programador y nuestra clase de programador heredan con clase studen Es por eso que puede acceder a todas las propiedades desde la clase de estudiante y la clase de programador también. Esto es para este tutorial. En nuestro próximo tutorial, vamos a conocerlo más. Gracias por ver este video, Sy tune. 15. Herencia única con constructor: Hola, chicos, me alegro de verles. Una vez más, estoy de vuelta con un nuevo tutorial. Añadiendo este tutorial, vamos a aprender herencia de un solo nivel. En nuestro tutorial anterior, puedes ver cómo podemos heredar estudiante con la clase de programador Es por eso que la clase de programador puede existir sobre los métodos y variables de la clase de estudiante. Ahora quiero agregar un nuevo método en nuestra clase de programador. Además, quiero agregar un nuevo constructor a nuestra clase de programador, voy a crear un constructor innit dentro de la clase de programador Davcondasco E coaccionar subrayado subrayado. Después dentro de los versos redondos, voy a pasar S. Luego dentro del constructor innit, por ahora, voy a escribir pass Quiero crear un constructor similar a studen. Tenemos que pasar el argumento C en nuestra función init. Aquí voy a usar los mismos parámetros. El nombre es H y altura. Copia el nombre de los parámetros y pega después de SLP. Con eso, quiero pasar un parámetro extra, que es el lenguaje. Aquí voy a escribir idioma. Con nombre de estudiante, edad, y su estatura, quiero tomar idiomas. Me refiero a lenguajes de programación, funcionan. Entonces quiero imprimir nombre, edad, altura y lenguaje de programación. Para eso, podemos copiar el mismo código desde el constructor innit Pero también podemos usar Super. Super media quiero usar constructor de superclase. Usando Super, podemos llamar a cualquier función y constructor de superclase y vamos a aprender sobre ello en detalle en nuestro próximo tutorial, no en este tutorial Entonces aquí, voy a pegar estas mismas variables. El nombre del punto Sil se llama limo HSh La altura del limo es la altura. Con eso, necesitamos tomar variable por lenguaje. Déjame mostrarte. El tipo sil punto Lenguaje igual al idioma. Cambiemos el nombre del parámetro, idioma significa idioma del estudiante. De lo contrario, puede confundirte. Estudiante punto idioma, ir al idioma. Y cuando creo instancia usando esta clase, necesitamos pasar otro argumento, el lenguaje de programación. Aquí quiero pasar Python. Así instancia fila hecha con clase programador y tiene su propio constructor. Pero en nuestro tutorial de preths, usamos el constructor de clase de estudiante para crear instancias de fila Pero aquí usamos programador constructor de clase. Ahora voy a llamar a la función OhundtPnPC, tipo Shan, print, Rohan, dot Pin Brock Antes de configurar este archivo y ejecutar este alcance, voy a agregar una nueva oración a la función Pin Broke. Aquí voy a escribir A es una A es a. en su lugar el auto resiste, voy a pasar SL punto Programador de idiomas. Ahora, la función print prop va a imprimir el nombre del estudiante, edad del estado, la altura del estudiante y el lenguaje de programación con el que trabajan. Vamos a establecer el archivo y ejecutar el. Como puedes ver, ha funcionado perfectamente. El nombre del programador es Rohan, de 21 años, altura es de 170 centímetros, y es un programador Python Aquí aprendemos después de heredar con otra clase, podemos usar superglass constructor, de lo contrario, podemos crear su propio constructor y también podemos agregar nuevas propiedades, valores y parámetros a este Como te dije, este no es el método correcto para crear constructor después de heredar esta clase Necesitamos usar constructor de superclase y vamos a aprender sobre ello en nuestro próximo tutorial, no en este tutorial Gracias por ver este video, esto es todo por este tutorial. En nuestro próximo tutorial, vamos a aprender múltiples herederos. Estén atentos para nuestro próximo tutorial. 16. Herencia múltiple: Hola, chicos, es bueno verlos de vuelta. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. En este tutorial, vamos a aprender qué es la herencia múltiple. En nuestro tutorial de pregresa, aprenderemos sobre qué es herencia única y cómo podemos usarla. Empecemos lo práctico y veamos qué es la herencia múltiple. Como puedes ver, ya creo un archivo Python, archivo punto principal, y ahora voy a crear clase dos clase con la misma función y propiedad. Nuestro nombre de primera clase es abuelo. Aquí voy a escribir class class keyword class. Entonces nuestro nombre de clase abuelo. Subrayar más. Entonces dentro de esta clase, al principio, voy a crear una variable y nuestro nombre de variable es riqueza. Aquí voy a atar riqueza. Riqueza. Mi abuelo es anciano y tenía algunas propiedades inmobiliarias. Aquí quiero sentirme 50,000 dólares. Y ahora necesitamos crearlo constructor para crear variable de instancia. Aquí voy a escribir el co undersco undersco. Entonces el primer parámetro RoundResso es self. Como parámetro predeterminado, necesitamos pasar sl. Con eso, voy a tomar algunos otros parámetros. Nuestro primer parámetro es name. Nombre, entonces voy a tomar Él luego probidad. Nuestro último argumento es la identidad. Ahora dentro del constructor init, necesitamos inicializar el parámetro con una variable Tipo Heim, punto l, o nombre de variable se nombra igual a nuestro nombre de parámetro, que también es nombre. Entonces voy a duplicar esta línea a tres t y ella para pasar limo H. También nuestro nombre de parámetro es H. Self punto bt Y también nuestro nombre de parámetro es propiedad. Por fin, nuestro último parámetro es identidad, la identidad de punto propio. Y nuestro nombre de parámetro es la identidad. Así que cuando creamos instancia usando esta clase, tenemos que pasar a la rueda de cuatro, nombre, edad, propiedad e identidad. Ahora voy a crear un método que pueda imprimir detalles de instancia. Aquí voy a escribir B BF y nuestro nombre de función es imprimir detalles. Luego dentro de la resis redonda, necesitamos pasar un parámetro. Self es un parámetro predeterminado. Como te dije antes, auto significa la instancia, crea con esta clase. Dentro de esta función, voy a devolver una sentencia, return. Aquí voy a usar Estrem luego dentro de los códigos dobles, el nombre de los temas está dentro los cols, nombre de punto propio Entonces voy a teclear Él dentro del carsis silbdt H para propiedades, voy a escribir tengo los autos Y luego necesitamos imprimir la identidad. Aquí soy monotipo y IU está en la identidad de puntos serbio de Colverss Creó con éxito una función que puede imprimir detalles de instalaciones, cual se hace con la clase abuelo. Ahora voy a crear una clase para otra generación para padre. Voy a seleccionar esta sección y doblarla. Aquí voy a cambiar el nombre de la clase solo clase más y más utilizada para invertir en acciones. Por eso ganó más dinero que el abuelo. Aquí voy a pasar 100.000 dólares. Oye, hice algún tonto error de mecanografía y lo voy a corregir. Yo soy. Entonces voy a crear otra clase para Sun. Aquí voy a escribir clase, clase, sol. Entonces dentro de la clase sol, voy a usar la misma función de detalles de pin. Copio esta función y la voy a pegar aquí. También voy a inicializar nuestro muy bien. Aquí voy a escribir, bueno, Riqueza igual a sólo $25,000 Es joven e invirtiendo en criptomonedas. Por eso ha logrado hacer tanta riqueza hasta el momento y también necesitamos mover este método dentro de esta etiqueta de sangría Ahora es perfecto. Aquí puedes ver, creamos tres clases diferentes para diferente generación para abuelo, para padre e hijo, también puedes ver asignamos una variable de clase similar a toda la voluntad de clase, pero usamos diferente voluntad ahora para alguna clase, voy a cambiar declaración regional en pequeña V. Aquí voy a cambiar la propiedad de identidad, sel dot identity, y me quito esta propiedad aquí voy a escribir, soy su hijo. Entonces, como puedes ver, no tenemos ningún constructor en la clase sol. Tenemos constructor en clase padre y abuelo. Por eso no podemos usar función preitals y las propiedades en nuestra clase de sol Para eso, necesitamos heredar la clase Sun con cualquiera de otra clase Podemos heredar la clase de sol con la clase abuelo también la clase padre Entonces primero, voy a heredar con la clase padre Gen. Abuelo. Con eso, también, voy a heredar con clase padre. Además. Aquí puedes ver, utilizamos múltiples herederos en clase sol Primero, heredamos con clase de abuelo y luego heredamos con más A continuación, voy a crear instancia usando toda esta clase. Déjame mostrarte. Ahora voy a crear tres variables de instancia usando estas tres clases. Al principio, voy a crear una variable de instancia usando la clase abuelo. Aquí voy a escribir un nombre de variable y nuestro nombre de variable es James. James igual a, y voy a crear esta instancia usando esta clase abuelo. Aquí voy a escribir abuelo. Grand más lejos. Entonces dentro de las prensas redondas, aquí necesitas pasar cuatro argumentos totales, nombre, edad, tipo de propiedad y relación. Me refiero a la identidad. Entonces primero, dentro del doble cos, voy a pasar a James. Entonces coma, el nombre del abuelo es James y tiene 94 años de edad y tiene el dueño de Por eso voy a mecanografiar tipo inmueble tipo inmuebles. Entonces viene la identidad. Relación con las clases de sol, es abuelo del sol. Aquí voy a escribir abuelo. Creamos exitosamente una instancia usando la clase abuelo. Ahora voy a crear una instancia usando más clase. Aquí voy a duplicar esta línea y voy a quitar a James aquí voy a escribir Robert. Robert. Además, necesitamos cambiar el nombre. Robert. Entonces voy a cambiar la edad es de 60 años, y él invierte mucho dinero en bolsa Por eso su tipo de propiedad son las acciones. Dobladillo para quitar existencias estatales y tipo Heim. Y la relación con Sunlass es padre. Aquí voy a escribir más. Con eso, también necesitamos cambiar el nombre de la clase. Como te dije, voy a crear esta instancia usando la clase padre, no la clase de Gan espumador, voy a quitar al padre Gan Si notas, puedes ver, no tenemos ningún constructor en la clase Sun. Tenemos constructor en clase padre y también tenemos constructor en clase Ganfather Al mismo tiempo, lo heredamos a diferentes clases. Por eso llamó herencia múltiple. Vamos a crear una instancia usando Sunclass y el apellido es Michael Michael hizo con la clase Sun, Sun. Después dentro de los vestidos redondos, nuevo, voy a mecanografiar a Michael. Es un hombre joven, tiene 26 años y viene de la nueva generación. Por eso invierte todo su dinero en criptomonedas. Hemo tipo cripto. Entonces tenemos que pasar la identidad y la identidad es sol. Ahora te voy a explicar cómo funcionan las herencias múltiples Voy a imprimir los detalles de Michael. Imprime dentro de los vestidos redondos, Imtype Michael. Michael dot print Detalles. Gettles Rosados. Ahora la pregunta es, si ejecuto este código, ¿qué función de detalles de impresión va a imprimir? Como puedes ver, tenemos función de detalles de impresión, toda esta clase, gafas de sol, vidrio padre, y clase abuelo ¿Qué declaración va a devolver? Si la función está disponible en su propia clase, entonces va a devolver esta declaración. Vamos a imprimirlo. Como pueden ver en mi terminal, se imprime el nombre es Michael de 26 años, tengo algo de PPT y soy su hijo. Está escrito esta declaración. De igual manera, si intentas imprimir la riqueza de Michael, así que para duplicar esta línea y comentar línea anterior aquí voy a escribir Michael dot bien. En ese caso, va a devolver este pozo, 25 mil. Pero qué pasó si comento la voluntad del sol, comentemos esta riqueza. Como pueden ver, comentamos riqueza de la clase sol. Ahora puedes ver que tenemos s bienes patrimoniales en nuestra clase padre y en nuestra clase Genfather Ahora, ¿qué propiedad se va a imprimir? Se va a imprimir la propiedad GenftherPlus por el orden, porque heredamos Gen father plus primero, y luego heredamos y luego heredamos Entonces, vamos a ejecutar el código y a ver qué pasó. Si ejecuto este código, como pueden ver, imprime 50,000, y es una riqueza de Genfather clus Pero si comento esta riqueza también, entonces comento Genfather más riqueza y luego configuro este archivo y ejecuto este código Ahora puedes verlo imprimir 100,000. Ahora es imprimir padre plus bien. La conclusión es Sun plus can ases propiedad del padre, también la propiedad de Genfather Entonces después de llorar su propia propiedad, puede excederse de su propiedad gnfather, y después de llorar la propiedad de su abuelo, puede excederse de la propiedad de su padre Si notas, puedes ver, no hay engaño entre la clase padre y la clase Genfather, y tanto la clase hecha con constructor separado como función prendidos separados Y también se puede ver que no tenemos ningún constructor en nuestra clase sol. Ahora la pregunta es, qué constructor va a utilizar para crear la instancia de sol. Si el constructor está disponible en la clase sol, va a usar su propio constructor como variable well. Pero si el constructor no está disponible en la clase sol, entonces va a encontrar al constructor en la clase abuelo. Si el constructor está disponible en la clase Genfather, entonces va a crear la instancia usando este constructor De lo contrario, va a buscar al constructor en otra clase. Repitamos otra vez. Al principio, va a buscar constructor a su propia clase. Pero si el constructor no está disponible, va a buscar el constructor a la clase Genfather porque primero hereda con Gen father class y el constructor no está disponible en la clase abuelo, entonces va a buscar al constructor en otra Este es el beneficio de usar múltiples herederos. Aquí heredamos más de una clase. Por eso lo llamamos múltiples herederos. Espero que no haya vadeo claro en cuanto a ver este video, estén atentos para nuestro próximo estudio 17. Herencia de varios niveles en Python: Oigan, chicos, me alegro de volver a verles. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. En nuestro tutorial anterior, aprendemos sobre lo que son múltiples herederos. Como puedes ver en tu pantalla, abrimos nuestro archivo anterior, y en nuestro tutorial anterior, aprendemos cómo podemos heredar múltiples clases con una clase, llamamos múltiples herederos Pero hoy en este tutorial, vamos a aprender qué son los herederos multinivel Vamos a iniciarlo. Al principio, voy a quitar constructor init de la clase padre Simplemente lo elimino constructor de aquí, y luego voy a heredar la clase padre con la clase Genfather Para eso, aquí voy a usar tirantes redondos y aquí voy a pasar nuestro nombre de clase Abuelo Abuelo Ahora voy a heredar nuestra clase de hijo con la clase padre solamente Voy a quitar la clase Genfather. Entonces ahora la conclusión es que la clase padre puede existir todas las propiedades de la clase Abuelo. En múltiples herederos la clase padre no puede usar la propiedad de la clase Genfather y sus matemáticas. Pero en herederos multinivel, clase padre puede existir Genfather más propiedades De igual manera, la clase Son puede existir propiedad de la clase padre. También, puede es propiedad de la clase abuelo. Así que de nuevo, Son puede sobrepasar tanto la propiedad de la clase, su clase paterna y su clase de abuelo, propiedad de su padre y la propiedad de su abuelo. Padre e hijo, tanto la clase va a usar Genfather constructor de clase Porque ahora no tienen su propia estructura de costos. Para probarlo, llamemos a la función Prin Details de otra clase Aquí voy a escribir Robert punto prin Detalles. Si configuro este archivo y ejecuto este código en mi terminal, como pueden ver, es impreso. Se llama Robert, la edad es 60, tengo algunas acciones, y soy tu padre. ¿Cómo es esto posible crear una variable de instancia de clase padre sin constructor? Porque padre clase en estatura con clase de abuelo. De igual manera, si llamo método de detalle de impresión de clase sol, déjame mostrarte a alguien para que lea esta terminal, y aquí voy a atar a Michael. Michael dot print Detalles y establecer este archivo y ejecutar la partitura. Ahora se puede ver que el nombre impreso es Michael de 26 años. Tengo algo de Crypto y soy tu hijo. También, puedes ver, no tenemos ningún constructor en sunclass, sino nuestra clase sol en estatura con clase padre y nuestra clase padre en estatura con clase abuelo Entonces padre e hijo ambos pueden usar constructor de clase abuelo. En nuestro tutorial prefacio, clase padre no puede existir bien la clase de abuelo Pero en este tutorial, padre puede excederse de su propia riqueza. También puede existir bien la clase abuelo. De igual manera, hijo puede existir su padre clase voluntad, también su abuelo clase bien, pero abuelo no puede existir padre clase riqueza e hijo más W. Déjame demostrarte eso. Aquí voy a comentar esta línea, y voy a imprimir. Dentro de la prensa redonda está James punto W. Si configuro este archivo y ejecuto este código en mi terminal, como pueden ver, está escrito 50,000. Pero si dis la riqueza del vaso abuelo, entonces voy a comentar esto y luego establecer este archivo y ejecutar este código. Ahora se puede ver que está escrito ero porque la clase abuelo no puede existir padre e hijo propiedad de vidrio. Pero si lo descomento, déjame mostrarte y llamar a la misma variable de riqueza para padre glass Aquí voy a escribir a Robert. Y establecer este archivo, ahora se puede ver que está escrito su propia voluntad. Pero si comento el w y luego configuro este archivo y ejecuto este se, ahora se puede ver que puede acceder a su padre más voluntad. Pero de nuevo, estoy comentando clase Abuelo wil y luego establecer este archivo y dirigir la escuela. Ahora puedes ver ahora es error escrito porque abuelo y padre tanto la clase no pueden acceder a la probidad de Songls, pero Son puede acceder a su padre y a la propiedad de su abuelo Déjame mostrarte. Si vuelvo a descomentar esta línea y ahora voy a teclear a Michael Michael dot riqueza. Si configuro este archivo y ejecuto este código, ahora puedes verlo devolver 25,000. Pero si comento propiedad patrimonial, riqueza variable de clase hijo, también de padre glass y pongo este archivo, ahora se puede ver, si ejecuto este código, devuelve 50,000. Después de que llorara sus propios bienes y los bienes de su padre, puede acceder a la propiedad de su abuelo Esta estructura se llama herencia multinivel en el programa orientado a objetos Python. Yo ahora está claro para ti, ¿qué es? Gracias por ver este video, mantente atento para nuestro próximo trío de dos. 18. Especificadores de acceso público, privado y protegido: Hola, chicos. Me alegro de verte de vuelta. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con el programa orientado a objetos Python. En este tutorial, vamos a aprender variable pública privada y protegida. También, vamos a aprender especificadores AXIS. Tratemos de entender qué es eso. Tratemos de entender qué es la variable pública. Supongamos que cuelgas un aviso fuera de tu casa, para que todos puedan verlo. Ahora, todo el público, incluidos los miembros de su casa, pueden acceder a los datos del aviso. Básicamente, quiero decir, cualquiera puede acceder a estos datos. Das acceso público al Tablón de Avisos. Y ahora la pregunta es, ¿qué se protege vía? Supongamos ahora que cuelgas tu aviso en tu salón, solo tu familiar y puedes acceder a este tablón de avisos. Nadie de fuera no puede acceder a él. Ahora los datos están protegidos en su casa. Pero, ¿qué es dat privado? Solo asume que esta vez cuelgas el tablón de avisos en tu recámara ahora sin ti, nadie puede acceder. Esto se llama vari privado para entenderlo más claro, estudiemos práctico Entonces como pueden ver, estoy en mi editor de código de Visual Studio y ya abro mi archivo anterior punto principal P. También se puede ver en mi archivo, hemos puesto tres clases de altura entre sí. Aquí puedes ver una variable dentro de la clase Ganfother. Es una variable pública. Cualquiera puede acceder a él. Si intento acceder a esta variable con una instancia, sí, podemos. Aquí voy a escribir, imprimir. Es el desnudarse Michael punto Wil. Si configuro este archivo y ejecuto este código, se puede ver que el resultado es imprimir 50,000, y ahora voy a hacer que esta variable la proteja. Para ello, necesitamos usar underscoge Underscoe will. Si trato de imprimir underscow estoy para alabar botón Ejecutar, como pueden ver, funciona perfectamente Porque nuestra clase en pegó con el abuelo de clase base Por eso podemos acceder a él. Ahora voy a hacer privada la propiedad W. Para eso, necesitamos usar Double UndersCosie UndersCoundersCoe Si trato de salir de esta variable con doble underscoe underscoe bien y establecer esta pila e imprimirla, como pueden ver, como pueden ver, El objeto Sun no tiene ningún atributo, bueno. ¿Qué está pasando aquí? Python no hace que esta variable v it. Aquí Python usa el nombre de la pesca con caña. Si quieres existir iv it variable, en ese caso, necesitas usar nombre de clase base con signo undersco Déjeme mostrar. Aquí voy a atar underscoe y nuestro nombre de clase base, grand Si configuro este archivo, y ejecuto mi core, como pueden ver, ahora podemos acceder a nuestra variable. Siempre, debes recordar que si quieres acceder a la variable privada, necesitas usar el nombre de la clase base con UndersCosge. Esto es para este tutorial. Quiero explicarlo tan sencillo como eso. No quiero que sea más complicado. Así que gracias por ver este video. Estén atentos para nuestro próximo. 19. Introducción del polimorfismo: Hola chicos me alegro de verte. Nuevamente, estoy de vuelta con un nuevo tutorial relacionado con la programación orientada a objetos Python. En este tutorial donde aprendemos qué es el polimorfismo. En nuestros tutoriales anteriores, aprendemos mucho sobre objetos y clases. Si describo polimorfismo es una sola palabra, polimorfismo significa capacidad de tomar Esto no es una función, no una clase, y no un módulo marchitamiento Se trata de un concepto. El significado literal del polimorfismo es la condición de aparición en diferentes formas. El polimorfismo es un concepto muy importante en la programación. Se refiere al uso de un solo tipo de entidad para representar diferentes tipos en diferentes escenarios. Este es un buen ejemplo de polimorfismo en función. Si usamos en función con cadena, en ese caso, podemos contar el carácter total de la cadena. Pero si lo usamos con lista, podemos contar los elementos totales de la lista. Además, si usamos en función con diccionario, en ese caso, devuelve cuántos pares de valores clave en este diccionario. La conclusión es que podemos usar en función para contar los caracteres para contar los elementos y para contar las claves. El comportamiento cambiante de este programa se llama polimorfismo Déjenme darles un pequeño ejemplo. Como pueden ver, estamos en mi editor de código de estudio de visor. ¿Se puede ver, tenemos una clase llamada abuelo y dentro de esta clase de abuelo, tenemos una función llamada imprimir detalles. Como saben, este es el ejemplo de herencia multinivel. Pero si notas puedes ver en cada clase, tienen su propia función de detalles de impresión. Siempre que intentemos imprimir detalles de la función de la clase sol, imprime su propia función, y si no está disponible, en ese caso, va a imprimir ésta. Porque la clase hijo inhala con más clase y la clase padre inhala con la clase Gen espumador Cada vez que la función de detalles de impresión sobrescriba la función de detalle de impresión anterior e imprima una nueva declaración Este es un tipo de polimorfismo. Logramos este polimorfismo para sobrescribir la función de detalles de impresión una y otra vez. Déjame mostrarte en otra demostración fácil. Entonces voy a quitar todas las líneas de aquí, y aquí voy a atar pre print. Dentro de la ronda versus, quiero congtnate a los números seis más ocho, y luego voy a conseguir Ahora voy a congtar para hacer streaming. Dentro de los códigos dobles, Otra vez, voy a pasar seis y dentro de los códigos dobles, aquí voy a pasar ocho. Vamos a establecer el archivo y ejecutar este código en mettermin. Aquí lo puedes ver impreso 14. En nuestra primera declaración impresa, se suma esto a porque estos son números. Pero en nuestra segunda declaración impresa, imprime 68 porque es una cadena. Si observas, puedes entender según el tipo de datos, el signo de concatenación cambia el comportamiento A esto se le llama polimorfismo. Como te dije, polimorfismo significa tomar diferentes formas según Cuando se requiere entrega de pizza, él es Peter Parker. Pero para el tiempo de acción, se convierte en Spider Man. Es el buen ejemplo de polimorfismo, ¿no? Ahora la pregunta es ¿cómo podemos lograr el polimorfismo? Podemos lograr polimorfismo usando la anulación. Podemos lograrlo, anular cualquier método, lo contrario anular cualquier atributo, y también podemos crearlo usando Dunder meth ¿Cuál es el método dunder del que vamos a hablar en nuestros próximos tudios Es un método especial. ¿Cómo podemos cambiar el comportamiento predeterminado de un objeto usando metanfetamina Dunder Lo vamos a aprender todo en nuestro próximo tutorial. Este es un sencillo video de introducción del polimorfismo. En nuestro próximo tutorial, vamos a aprender súper método y anulándolo y usándolo, podemos lograr el polimorfismo Gracias por ver este video, estad atentos para nuestro próximo tudio 20. Super() y anulación en las clases: Hola, chicos. Encantado de verte de vuelta. Nuevamente, estoy de vuelta con un nuevo tutorial relacionado con el programa orientado a objetos Python. Y en este tutorial, vamos a aprender súper y sobrepasando en clases Entonces, como puedes ver, estamos en mi editor de código de estudio Visa, y ya aprendemos sobre lo que está sobrepasando en nuestro tutorial anterior Pero ahora voy a mantener un enfoque profundo en este tema, por ejemplo, voy a crear algunas clases simples. Al principio, voy a crear una clase clase, y nuestro nombre de clase es A. Luego dentro de esta clase, voy a usar una variable de clase, nuestro nombre de variable de clase es class. Clase uno y se asigna con una oración. Dentro del doble curso, voy a escribir estoy en clase A. Entonces voy a crear un constructor dentro de esta clase. Aquí voy a escribir estos underscoe en él. Subrayar. Dentro de las prensas redondas, voy a pasar sl. Por ahora, no quiero pasar ningún argumento. Dentro de este constructor, voy a declarar una variable. Para eso, necesitamos empatar sl dot, y nuestro límite variable es el indicado. Aquí voy a empatar dentro de los códigos dobles. Dentro del código doble, voy a escribir estoy dentro del constructor de clase A. Y luego voy a crear otra clase y nuestro nombre de clase es clase V. Clase B y Clase B en altura con clase A. Luego dentro de esta clase B, voy a crear otra variable, que es la clase R dos, clase hay dos iguales a dentro del doble curso Cabeza voy a escribir, estoy en clase B. Y ahora voy a crear dos variables de instancia usando las clases. Nuestra variable de primera instancia es A, A igual a, y para eso, voy a usar la clase A. Nuestra variable de segunda instancia es pequeña B. Voy a crear este objeto usando la clase B. Así que aquí creo dos variables de instancia usando ambas clases. Si imprimo B, punto, clase ahí uno, y luego configuro este archivo y ejecuto este código en mi terminal, como pueden ver, es print, estoy en la clase A porque esta clase hereda con la clase A. Por eso podemos acceder a esta variable de clase Ya sabemos cómo es el trabajo. Pero si creo la misma variable en este constructor, déjame mostrarte. Aquí voy a atar, vender punto, y voy a copiar la misma línea. Celda superior, voy a pasar. Como voy a cambiar esta frase. Instancia donde clase A. Si configuro este archivo y ejecuto este código en mi terminal, ahora puedes verlo imprimir esta variable. En cambio está en clase A. Ahora, al principio, va a buscar esta variable en este constructor. Si la variable no está disponible, entonces va a buscar la variable de la clase A y ya nos enteramos de eso. Es una variable de instancia, y hay que recordarla. Primero, creamos la clase A y luego creamos la clase B, pero heredamos la clase A con B. Dentro de esta clase B, creamos solo una variable, clase dos Si trato de imprimir punto B clase uno, entonces al principio va a buscar la variable en clase B. I' voy a buscar, ¿hay alguna variable de instancia disponible nombre clase V uno Entonces, como puedes ver, no hay variable de instancia. Entonces va a buscar la variable de instancia en clase A porque esta clase hereda con la clase A. Como puedes ver, esta variable está disponible en la instancia de clase Por eso es imprimir la variable. Recuerde, cada vez que va a encontrar la variable de instancia en lugar de la variable de clase. Si cambio el nombre de la variable, déjame mostrarte clase donde uno y esto en este archivo. Nuevamente, ejecuto este código, como pueden ver, también imprime la variable de instancia. Aquí lo puedes ver imprimir instancia V en clase A. Pero si la variable de instancia no está disponible, así que voy a comentar esta línea y luego en este archivo y ejecutar este código. Ahora lo puedes ver impreso, estoy en clase B. Si la variable de instancia no está disponible, entonces se prefiere variables de clase. Y la variable de clase ya está disponible en la clase B. Por eso imprime una variable de clase en. De lo contrario, va a imprimir Clase A, Clase V uno en, estoy en clase A. Ya aprendimos de todo en nuestros tutoriales anteriores. A esto se le llama anulación. Hemos sobrescrito variables de una clase más a otra. Ahora te voy a mostrar ¿ cómo podemos anular los métodos? Voy a sobrescribir este constructor. Despeiné esta línea y voy a copiarla. Dentro de esta clase B, voy a pegar. Aquí voy a escribir estoy en clase B constructor. Además, voy a cambiar la variable de instancia, instancia donde en la clase B. Aquí anulamos nuestro constructor. Si configuro este archivo y ejecuto los códigos, como saben, ahora va a imprimir esta instancia instancia de onda variable donde en la clase B. Aquí puedes ver sprint, instancia donde en clase B porque está bien la variable de instancia, es una clase. Por eso imprimo esto. Pero si comento esta línea, entonces ¿qué pasa? Como pueden ver, comento esta línea y ahora voy a configurar este archivo y voy a volver a ejecutar este archivo. Ahora se puede ver el valor variable pre clase. Estoy en clase B. Pero como te dije, siempre se busca por instancia variable. Si la variable de instancia no está disponible, entonces imprime la variable de clase. Como puede ver, la variable de instancia está disponible en clase A y la clase A en altura con la clase B. Ahora la pregunta es, entonces por qué no está funcionando y por qué imprime el valor de la variable de clase. Porque sobrescribimos el método. Ahora, por alguna razón, quiero ejecutar constructor Clase A, pero ya está sobrescrito Supongamos que creo una variable especial en el constructor de clase A. Déjame mostrarte. Herramtype al punto especial Il punto especial, igual a herramtype Soy variable especial. Ahora quiero acceder a esta variable usando instancia de clase B. Aquí quiero escribir punto B especial. Si configuro este archivo y ejecuto este código, como puedes ver, va a devolver ro Porque como te dije, constructor de variables B invalida a un constructor de variables. Pero si quieres acceder a esta variable después de anular, en ese caso, en su lugar este constructor necesitará escribir supercondscoe Significa que ahora puedo acceder al constructor de superclase. Recuerda, necesitamos usar paréntesis después de Super. Si configuro este archivo y ejecuto el sce, ahora puedes ver sprint soy variable especial Después de más en el constructor, si quieres acceder a la variable de instancia del constructor anterior, en ese caso, necesitas usar supermthod de esa manera, podemos Con eso, también podemos acceder a variables desde su propio constructor. Déjame mostrarte. Aquí quiero escribir B, punto, y nuestro nombre de variable es uno. Si configuro este archivo y ejecuto este código en mi terminal, como pueden ver, primero, imprimir, soy variable especial. Es de superconstructor. También imprima Im dentro del constructor de clase B. Es de su propio constructor. Usando supermthod puedes acceder a ambos atributos classes a la vez Esto es para este tutorial. Gracias por ver este video estatua. 21. Problema de la forma del diamante en la herencia múltiple: Tan bueno verlos chicos. Nuevamente, estoy de vuelta con un nuevo tutorial. En este tutorial, vamos a resolver el problema, que es el problema de la forma del diamante. Pero antes, te voy a explicar qué es problema de la forma del diamante en múltiples herederos. Este problema crea confusión entre clases. Cuando usas herederos. Si usas el mismo método en toda esta clase, entonces puede crear confusión. En Python, no es tan grande, pero otros lenguajes como C plus plus, crea una gran confusión. Es por eso que algunos idiomas no son compatibles con múltiples herederos. Aquí puedes ver un diagrama. Aquí creamos cuatro clases, A, B, C y B. clase B heredan con la clase A, también más C heredan con la clase A, pero las clas D usan múltiples Esta clase en hit con la clase B también más C. Así puedes llamar a B y C hijo de clase A, pero D hizo con clase B y C. Para la clase D, B y C, ambas son clase padre. Ahora voy a aplicar el mismo diagrama en nuestro código. Como pueden ver, estamos en mi editor de código de Visual Studio, y ya creo un Python cinco punto principal P. Al principio, voy a crear cuatro clases. Clase A. Dentro de esta clase por ahora, voy a escribir pus y voy a excavar esta sección Clase B. La clase B hereda a la clase A, y también voy a heredar la clase C con A, entonces Hemotipo C. Ahora voy a heredar la clase B con B y C, B C. A voy a cambiar el nombre de la clase de C a D. Y ahora voy a crear un método dentro de la clase A. Espacio de hemotipo, y nuestro nombre de método clase A. Espacio de hemotipo, y Entonces dentro del vestido redondeo tenemos que pasar S. Luego dentro de este método, voy a escribir print, y quiero imprimir un enunciado Y aquí voy a escribir, este es un método de la clase A. Antes de evitar este método, voy a crear algún objeto usando esta clase. Nuestro primer nombre de objeto es pequeño A igual a, y quiero hacer este objeto con una clase A. Nuestro triste nombre de objeto es pequeño B, y creo este objeto con clase B O los dos últimos objetos es la clase C y clus D. Estos clústeres están hechos con C y D. Se crean cuatro objetos usando esta clase cuatro Como pueden ver, tenemos un método en clase A. Si trato de excederlo con objeto D, sí, podemos. Hemo tipo D punto T. Si configuro este archivo y ejecuto este código en mi terminal, como pueden ver, es sprint, este es un método de clase A B D clase en hit con clase B y C, y Clase B y C en hit con clase A. Es por eso que el objeto D puede acceder a este método. Pero, ¿qué? Si evité este método en clase B, déjame mostrarte. Él T, este es un método de la clase B. Si configuro este archivo y ejecuto este código, como puedes ver, está escrito, este es un método de la clase B. Como puedes ver, la clase hecha con B y clase C y B tienen su propio método met. Ahora crea confusión jurídica. ¿Qué método se va a ejecutar? Pero, ¿qué? Si vuelvo a sobrescribir esta función, déjame mostrarte De nuevo, voy a sobrescribir en clase C. Aquí voy a escribir, este es un método de la clase C. Ahora la pregunta es, si yo este plan, qué afirmación va a pre? Tenemos la misma función en clase C clase B y clase A. Pero si ejecuto este código, déjame mostrarte que puedes ver en mi terminal, es impreso. Este es un método pro clase B. Ahora la pregunta es ¿por qué no imprime el método de clase C? Ahora es crear poca confusión. Porque al principio, la clase en altura a la misma clase B. Por eso imprime la función de clase B. Si cambio el der, déjame mostrarte si cambio C aquí y B aquí, luego establece este archivo. Y vuelve a ejecutar este código. Ahora lo puedes ver impreso, este es un método de la clase C. Recuerda, agua es lo más importante en los herederos. En el lenguaje de programación Python, no crea grandes programas, sino que en otro lenguaje de programación, crea grandes confusiones El lenguaje Python y la sintaxis son muy fáciles. En otras lenguas, Pgomar siempre trata de ignorar a múltiples herederos solo por esta confusión Esto es para este tutorial. En nuestro próximo tutorial, vamos a aprender la sobreescritura del operador y los métodos Dunder Gracias por ver este video, estatua. 22. Sobrecarga de operadores y métodos prácticos: Me alegro de verles chicos. Nuevamente, estoy vuelta con otro tutorial, relacionado con la programación orientada a objetos Python. En este tutorial, vamos a aprender sobrecarga de operadores y Dunder Entonces, sin perder el tiempo, saltemos al editor de código de Visual Studio y veamos qué hay ahí. Estamos en mi editor de código de Visual Studio, y como pueden ver, tenemos un archivo Python main dot pi, y ya creo un nombre de clase student, y dentro de esta clase, tenemos un método de clase y una función, luego imprimir detalles. Con eso, tenemos una variable de clase y es constructor. Aquí puedes ver, creamos dos objetos Advan y Smith con esta clase, y aquí pasamos su nombre, su edad, y su subidón Si ejecuto este código, no va a devolver ningún error. Pero si me uno tanto al objeto y luego ejecuto el código, déjame mostrarte. Aquí voy a escribir print es en la ronda ss, voy a pasar nuestro primer nombre de objeto, agregar uno. Agrega uno más Smith. Si configuro este archivo, cierro mi terminal y leo sobre este código, como pueden ver, está escrito flecha. Está escrito tipo flecha, tipo abierto no compatible Usando el signo de concatenación, no podemos unir objetos así, pero usando el método Dunder, podemos unir Detrás de escena, necesitamos usar un método dunder, Dunder add para agregar tanto el Déjame mostrarte cómo funciona. Aquí, después de esta línea, voy a escribir Dave deshacer undersco en función Es un método dunder. Entonces dentro de la ronda ss, necesitamos pasar dos parámetros self en el objeto, y aquí necesitamos tomar otro parámetro, que es otro. En este método dunder, quiero agregar el objeto H 21 más 23 Quiero regresar, devolver limo H, CGATenateot H, otro punto H. Ahora voy a ejecutar Sde Voy a alabar botón Ejecutar. Después de ejecutar este código, puedes verlo escrito 44, 21 más 23 igual a 44. Es un método especial que puede utilizar para unir dos valores de objeto diferentes. Es un método especial y lo llamamos método dunder, Dunder es indefenso para sobrecargar a nuestros operadores, pero no es obligatorio que utilice cada método especial para sobrecargar a Similar a este método, hay muchos métodos Dunder como y piso crutvoator formiato Estos métodos también se conocen como método mágico, magia por lo demás método Dunder Déjame mostrarte otro ejemplo de este método. Déjame mostrarte otro ejemplo. Para eso, voy a duplicar esta sección. Voy a duplicar este metílico Dunder y Hemo tipo otro nombre de método que es proteína Aquí voy a devolver la celda H dividida por un punto H. Y además, voy a cambiar el valor de este objeto. Él voy a pasar siete. Si imprimo, agregue uno dividido por Smith y luego ponga este archivo en el código de mi terminal, como puede ver, está escrito tres p cero. Este método dunder sobrecarga al operador de barra, y puedes consultar todos los operadores de la documentación, cómo puedes usar Admthod, cómo puedes usar el método, cómo puedes usar el método de división de flujo, división de flujo No te preocupes. Proporcionaré el enlace en la descripción. Esta es la introducción muy simple y básica de Dunder y sobrecarga del operador Gracias por ver este video. 23. Clase base abstracta: bueno verles chicos. Nuevamente, vuelvo con otro tema relacionado con la programación orientada a objetos Python. En este tutorial, vamos a aprender clase base abstracta. Además, vas a aprender método abstracto y meta AVC. Pero ahora la pregunta es, ¿qué es la clase base abstracta? Las clases basadas en abstractas separaron la interfaz de la implementación. Definen métodos genéticos y propiedades que deben ser utilizados en las subclases Como puedes ver en un editor de código de estudio de visor, hay una clase llamada shape. Es nuestra clase base y dentro de esta clase base, tenemos una función llamada área de impresión. Luego creamos otra clase llamada rectángulo y heredamos esta clase con la clase shape Y dentro de esta clase, tenemos construir. En este constructor, declaramos dos variables longitud y anchura, longitud seis y anchura siete También sobrescribimos la función de área de impresión en esta clase. Aquí creo un objeto usando la clase rectángulo. Si ejecuto este código, como pueden ver en mi terminal, no hay ningún error. Funcionó perfectamente. Ahora voy a comentar esta función de área de impresión desde la clase rectángulo. Seleccione y comento. Si ejecuto este código, de nuevo, se puede ver en mi terminal, no hay O. Es un comportamiento completamente normal. Ahora, clase base va a implementar una regla. Si alguno de la clase en altura conmigo, deberían sobrescribir la función de área de impresión Como puedes ver, clase rectángulo en altura con clase Shape. Entonces, si no lo hacemos sobre en la función de área de impresión en clase rectángulo, entonces va a devolver la flecha. I NO clase en altura con clase de forma, entonces la clase debe sobrescribir la función de área de impresión Ahora la pregunta es cómo la clase base puede establecer la habitación. Para eso, necesitamos usar la meta clase ABC. Con eso, también necesitamos usar el método abstracto. Aquí voy a importar este módulo. Voy a escribir desde ABC Import ABC meta. Con eso, necesitamos importar método abstracto, método abstracto. Ahora usando estos métodos meta y abstractos ABC, este vidrio base puede establecer una carrera. Para eso, dentro de la ress redonda necesitamos escribir metaclase Metaglass igual Entonces necesitamos usar el método abstracto decorador. Copia el nombre y antes del nombre de la función, voy a escribir al método abstracto tasa. Ahora bien, esta clase base estableció una regla. Si no sobrescribes este método de área de impresión en tu clase, entonces no puedes hacer ningún objeto con eso Si configuro este archivo y ejecuto este código en mi terminal, como se puede ver se sienta en una flecha, que es error de tipo, y como puede verlo imprimir no puedo tentiar rectángulo de clase abstracta con método abstracto área de impresión Pero si sobrescribo la función de área de impresión en la clase rectángulo, entonces ¿qué pasa? Voy a descommen esta línea y voy a sobrescribir nuevamente la función de área de impresión Si configuro este archivo y ejecuto este código en mi terminal, ahora puedes ver, ahora funciona perfectamente, no hay erosionar en nuestra terminal Este es el uso de la clase base abstracta y la matemática abstracta. Espero que ahora el concepto sea claro para ti. Gracias por ver este video.