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.