✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/python-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Python👉 www.pildorasinformaticas.es/course/python-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
por mi situación personal apenas dispongo de dinero, por eso he hecho una donación por paypal, super mínima, pero al menos era algo que quien hace estos videos merece: un reconocimiento, por mínimo que pueda ser. gracias por estos video-cursos gratuitos y tan bien hechos.
Uno no reconoce la calidad de este material hasta que no viene de haber visto muchísimo contenido por aparte. De verdad, profe, que me impresiona cómo es capaz de desmenuzar este tema para que nosotros podamos entender de dónde sale cada cosa. Qué pedagogía excelente!
Estos son los videos que deberian tener millones de likes, vistas y suscripciones, pero no... los tienen los videos que no aportan absolutamente nada, gracias MAESTRO por tanto!!!
Hombre Juan como decimos en Antioquia(Colombia), un Dios te pague y el Señor le multiplique, estas cumpliendo esa obra de misericordia "enseñar al que no sabe y corregir al que hierra", tengo una profesión que nada tiene que ver con programación y comencé a estudiar esto por necesidad de cambiar el perfil profesional, tienes mucho amor en lo que haces y eso se traduce en que te haces entender como pocos, eso es lo que tienen los Españoles, que siempre se han entregado sin pedir nada a cambio, mil y mil gracias
profesor es usted una persona con un vasto conocimiento, y con una capacidad de enseñar increíble, en pocas palabras un genio. muchas gracias por estos cursos
Amigo, en POO he estado más perdida que bebe en teleserie venezolana. Estuve viendo nuevamente las clases online, estudiando cada concepto, tratando de hacer los ejercicios del profe, comparando mis respuestas con otros compas igual de perdidos para después preguntarle al profe cómo rayos era el desarrollo. En dos videos (POO III y POO IV) mi cerebro por fin hizo ese "clic" y entendí todo. Muchas gracias, me salvaste :3
Profe, he visto casi todos sus cursos. Es un crack y un heroe. Que se jodan las Kardashian y sus millones,son personas como usted las que se inmortalizan.
Espero a alguien le sirva pero vi estos videos de POO hace 3 años. Hasta el punto en que los abandonè porque no entendia. En el medio seguì estudiando, hice un bootcamp, me volvi a frustrar porque no te enseñan a programar sino a picar codigo solamente... y hoy puedo decir que volví a seguir intentandolo. si estas en es mar de informacion, en ese ciclo vicioso de ver videos, etc etc... dejame decirte que aunque no parezca si sos constante lo vas a lograr. yo volví despues de 3 años y es increible todas esas horas invertidas en js, nodejs, react, vue, freecodecamp, etc etc sirvieron. Ahora realmente entiendo conceptos que siempre estuvieron en frente de mi todo el tiempo. no desistan, sigan intentandolo. la clave es la perseverancia.
nuevamente agradecido por tanto conocimiento, este video tiene demasiada carne y hay que masticarlo para poder entender y retener toda esta valiosa informacion. Gracias :)
Tres visualizaciones(tomando apuntes, plasmando el codigo y tomando notas), la primera hace un par de dias, alucinaba, ayer la segunda, me costaba entender algunos concepto aún. Ahora se me abrió el cielo y fluye el conocimiento hacia mi. MIL GRACIAS JUAN
Excelsa la explicación del profe. Yo me he armado mi propio manual de videos y libros. Al que le interese se lo envío. Lo mínimo que puedo aportar ante clases tan magistrales. Bravo
Hola, buenos días!! Sigo tus cursos tutorizados, lo he retomado luego de un tiempo .... Estoy siguiendo al mismo tiempo, como una forma de repaso, la clase tutorizada con la clase gratis por youtube, por verlo con otras palabras o perspectiva el mismo y se aclaren conceptos. Didacticamente eres un crack, impresionante como transmites tus conocimientos, diria el mejor profesor de un tutorial. Me inicie con las clase gratis luego con las clases tutorizadas de pago. Al repasar la misma clase, en el curso gratis, me he dado cuenta el "por qué" me costaba entender o dificultaba muchísimo el entender la Programación Orientada a Objetos y estaba en el ejemplo. La dificultad en el entender la P.O.O estaba en el ejemplo que utilizas, como nombras al objeto miCoche, visualmente muy parecido al nombre de la clase, que es Coche, entonces buscaba y perdía el tiempo pensando en la relación porqué nombras "miCoche" con el nombre de la clase "Coche". Una vez visionada la clase tutorizada donde nombras al objeto con Mazda o Renault la comprensión ha sido rapidisima. Claro ahora ya entiendo esa relación del objeto miCoche con la clase Coche. Todo esto lo comento, pues como te admiro, para que tengas en próximos tutoriales, estos detalles en cuenta, a la hora de nombrar ejemplos, creo que sería conveniente que los nombres o ejemplos se acercaran más a la realidad, para que no sea algo abstracto y se asimilen más rapidamente los conceptos, así como lo has hecho genial en la clase tutorizada con Renault o Mazda. Ahhh, y perdona por la extensión del comentario. Muchisimas gracias por tus clases ....
Genial. Por fin estoy entendiendo la POO. Habia leido algunos libros sobre este tema, pero nunca me ha quedado tan claro como ahora. Muchisimas gracias! Aqui pongo un ejemplo, tomando como base el ejemplo de la clase Coche que hemos visto en este video. class Coche(): """Clase que administra la creación de un coche.""" def __init__(self): """Metodo constructor. En donde estan las propiedades comunes de un coche""" self.__ruedas = 4 self.__color = "blanco" self.__largoCoche = 200 self.__altoCoche = 150 self.puertas = 5 self.__gps = False self.__enMarcha = False def arrancar(self, movimiento): self.__enMarcha = movimiento if(self.__enMarcha): return "El coche esta en marcha." else: return "El coche esta parado." def estado(self): print(f"El coche tiene {self.__ruedas} ruedas. Es de color {self.__color}. Tiene un largo de {self.__largoCoche}." f" De ancho tiene {self.__altoCoche}.") def global_gps(self, gpsT): self.__gps = gpsT if (self.__gps): return "El coche tiene sistema de GPS." else: return "El coche no tiene GPS." # Creación del objeto: Toyota Camry print("Toyota Camry") ToyotaCamry = Coche() print(ToyotaCamry.arrancar(True)) print(ToyotaCamry.global_gps(True)) ToyotaCamry.puertas = 4 print(f"El coche tiene {ToyotaCamry.puertas} puertas.") ToyotaCamry.estado() print(" ***********************************Siguiente Coche*********************************************** ") # Creación del objeto: Hyundai i20 print("Hyundai i20") Hyundaii20 = Coche() print(Hyundaii20.arrancar(False)) print(Hyundaii20.global_gps(False)) print(f"El coche tiene {Hyundaii20.puertas} puertas.") Hyundaii20.estado()
Excelentes videos y profesor ¡¡ Explica de forma muy didáctica y sencilla; hasta yo que tengo una cabeza pequeñita lo entiendo :) y encima gratuitos ¡¡¡ por favor, los que puedan hagan donaciones para que siga haciendo estos cursos tan buenos ¡¡
Muchas gracias por sus videos, llevo unas semanas aprendiendo python y este curso sin duda es el mejor. He aprendido muchas cosas nuevas, pero sobre todo con lo que más se aprende es practicando, mientras veo sus videos me pongo a aplicar todo lo aprendido y la verdad lo voy entendiendo super rapido a pesar de tener 14 años! me encanta el mundo de la programación y gracias a ti puedo aprender thx profe
Me encantó tu forma de explicar, todo quedó muy claro y entendible para mí. Me motivaste a seguir aprendiendo y mejorando mis habilidades en programación. . ¡Gracias por compartir tus conocimientos con nosotros!"
Las palabras de agradecimiento son pocas para reconocer el gesto y el valor que has puesto en dedicar un poco de tu tiempo y compartir tus conocimiento con persona que nos apasiona esta rama de programacion, no por que sea gratis si no que persona como tu hacen que otra podamos crecer, y continuar en nuestro aprendizaje en cualquier rincon del mundo y que se nos imposibilita poder costiar una preparatorio y se que personas que han visto estos videos le han sido de mucha ayuda te hablo de mi pais que es Venezuela que estamos atravezando por una gran crisis, pero se que vamos a salir de todo esto Gracias, Gracias con tinua Mil felicitaciones
Muchas gracias por tu comentario y por seguir mis vídeos con tanto interés. Me alegro mucho de que los vídeos sirvan de ayuda. Muchos ánimos a todos loe venezolanos por la dura situación que estáis atravesando. No olviden que por mucho que llueva al final siempre acaba saliendo el Sol. Un cordial saludo!!
Estoy empezando a ver estos vídeos y me parecen excelentes! Eres un tutor inclreíble al que se le entiende todo perfectamente y que me motiva a seguir estudiando. Muchas gracias por este gran esfuerzo!😁
No puedo más que sumarme a las felicitaciones y los agradecimientos por este excelente curso. Es muy claro y didáctico. Muchos saludos desde Buenos Aires, Argentina
eres el #1, genial! muchas felicidades, voy muy bien en tu curso, me ha servido mucho, hace mucho tuve curso de jajajaja Basic, pascal y cobol...comprendo los avances y procesos......en este video casi que caigo en la cero comprension....el concepto era claro , pero al momento de programar lineas......me dije no entiedo....hiciste correcciones y era mucho mas facil ...ufff..me causaste un susto!!.....Felicitaciones!!
Estoy estudiando el curso de Conquer Blocks actualmente, lo estoy disfrutando pero a veces hay saltos cuantitativos en términos de código y me pierdo. Gracias a ti relleno todo lo que no pillo, eres TOP
muchisisiissimas gracias por el contenido no sabes cómo me ha servido porque soy estudiante de maestría en inteligencia analítica pero no estudié programación. muchas muchas gracias gran trabajo saludos
Me gusta mucho la forma en que explicas porque primero vas explicando como funciona el código y luego ya dices los nombres de como se le conoce a distintos "elementos" por decirlo de alguna manera.
Profe, muchísimas gracias! :) Una nota al pie: realmente sí es posible acceder a una propiedad "privada" desde fuera, lo que hace Python es hacer que el proceso sea más difícil a diferencia de, por ejemplo, Java donde lo privado sí es privado. Sería más o menos así: .. Me picó la curiosidad y busqué en internet.
quiero agradecerle por los videos. Empece a ver los tutoriales de python, y explicas muy bien entiendo todo lo que dices. 100 puntos. Y espero que hagas algunos tutoriales de C, C++, y/o Mathlab. Si sirve de algo, principalmente lo hago por agradecimiento, me quedo a ver la publicidad al comienzo de los videos que nos ofreces.
por lo que veo del encapsulamiento, en el ejemplo de las ruedas, poniendo: miCoche2.__ruedas = 2 print(miCoche2.__ruedas) # Sí aparece un 2 en vez de 4. Se supone que no modifica la propiedad del constructor, pero sin embargo en el programa principal, en el objeto coche tienes otra variable que se llama igual con valor a 2? No lo acabo de entender del todo.
Hola, me surge una pregunta. ¿Porqué dices que el constructor le asigna al objeto creado un estado incial cuando de todos modos sin el constructor ya se asigna ese estado inicial? Estoy enredado en esa parte, aún cuando no ponías el constructor, al creal un objeto y acceder a sus propiedades, las muestra en pantalla, lo cual entiendo yo como que hacen parte de su estado inicial. Muchas gracias por responder, enseñas muy bien y es porque así mismo conoces los temas.
Gracias por el comentario. Porque si creas un constructor eres TÚ el que determina cuál es el estado inicial de ese objeto. Si no se utiliza constructor es Python el que le asigna a los objetos un estado inicial por defecto. Imagina que tienes una clase "Coche" con una variable de clase de tipo boolean "aparcado". Si no utilizas constructor, Python por defecto le da como estado inicial "aparcado=false". ¿Pero y si yo quiero que el estado inicial sea "aparcado=true"? Esto no es posible hacerlo a no ser que yo cree un constructor donde la variable "aparcado" sea igual a true. Python (y todos los lenguajes de programación orientados a objetos) siempre dan un estado inicial a los objetos a pesar de no tener método constructor. El problema surge cuando tú como programador quieres que el estado inicial de los objetos sea otro del que asigna Python por defecto. No queda más remedio entonces que crear un constructor donde TÚ eres el que da el estado inicial que quieres. Un saludo!
@@pildorasinformaticas Profe pero en el ejemplo sin usar el constructor se le puede asignar false o True a "Enmarcha" y Python se lo asigna a todos los coches que se crean. Igual podría hacerlo con Aparcado sin usar un generador. Gracias.
@@pildorasinformaticas Sigo sin acabarlo de entender... si no creas el constructor se toman las caracteristicas que habia por defecto, y si lo haces con el constructor también... soy yo siempre el que pone esas caracteristicas por defecto. No entiendo que digas python lo hace , python no ha asignado nada por defecto lo hemos puesto nosotros. Es más cuando se ha creado el constructor... no se han movido las caracteristicas.
cuando escribo def __init__(self):, se me desactiva def arrancar y def estado. A que podría ser debido? (Sí, están dentro de la función con la sangría ) me sale esto "in print(miCoche.arrancar(True))". Gracias de antemano
Estuve toda una tarde buscando del por que me salía un error en consola (AttributeError: 'Coche' object has no attribute 'ruedas') . Me puse a repasar todos los nombres del codigo, buscar en internet si me faltaba alguna librería o si había cambiado la sintaxis. Resulta que estoy utilizando VisualStudio, en el autocompletado que tiene no me di cuenta y me cambio el __init__ por __int__ . Son dos palabras/funciones que no se percibe a simple vista. Ahora si.... a continuar con las demás clases.
Buenas. Antes que nada, darte las gracias por este cursillo gracias al cual estoy aprendiendo muchísimo y, al igual que yo, muchas personas lo estaran disfrutando. Sin embargo me ha surgido una pregunta que agradecería que me resolvieras, si no es mucha molestia. ¿Cuál es la diferencia entre declarar una propiedad fuera del constructor (como en el principio del vídeo) y declararla dentro del constructor (como en el final del vídeo)? Me harías un gran favor si pudieras responderme :)
Buenas Tarde el mas grande Genio en Programación de videos que he conocido en la RED..... Muchas Bendiciones para usted Profe,, a manera de consulta usted cree que un futuro próximo podíamos tener un curso de visual Studio con ASPX , ASP saludos Profe Mil Gracias por sus videos....
Muchas gracias por el comentario y por seguir mis vídeos con tanto interés. Es mi intención hacer los cursos que mencionas y muchos más. El problema es que hacer un curso de estos lleva muchísimo tiempo y voy mucho más despacio de lo que me gustaría. Por desgracia los días tienen solo 24 horas, pero poco a poco iré subiendo más cursos al canal. Un saludo!!
gracias por tomarse su tiempo en este curso, aprovecho para decir que en ya en python 3.8.1 se puede usar. miCoche._init_() esto te permite usar todos los atributos del constructor aunque no se si en versiones anteriores también era posible.
al ejecutar me sale todo bien pero en la parte de miCoche2.estado() al arrancar el programa me sale none, a que se debe eso? sera porque estoy usando el IDLE Python?
Queria consultar sobre un error que me aparece. Traceback (most recent call last): File "C:/Users/MES/caracteres/POO_4_Otras_prop.py", line 51, in print("El estado es", miCoche2.estado()) File "C:/Users/MES/caracteres/POO_4_Otras_prop.py", line 21, in estado if(self.enmarcha): #Tb if(self.enmarcha)==True: (es lo mismo) AttributeError: 'Coche' object has no attribute 'enmarcha' El largo del chasis 250 El coche tiene 4 ruedas El coche esta en marcha --------A continuacion crearemos el 2do objeto-------- El largo del chasis 250 El coche tiene 4 ruedas Process finished with exit code 1 Sucede cuando agrego la linea print("El estado es", miCoche2.estado()) Muchas gracias.
Al final del video dices que vas a enseñar a encapsular funciones dentro de clases y con que objetivo, no es necesariamente tiene que tener una finalidad si no la que todo andamos buscando que es aprender a fondo python, quizas no tengamos que encapsular nunca una funcion pero es bueno saber como hacerlo asi si vemos algun codigo en un futuro lo pudieramos entender sin estar buscando mas referencia de que hace tal cosa 😊
El mejor consejo que se puede dar en mi opinion para este curso, es que vean los videos 26 y 27 hasta que entiendas perfectamente ya que son las base para todo lo que viene. En el momento que se entienda, no tendran el problema de dejar de seguir el curso por no entender temas mas complejos.
estoy usando el SPYDER pero cuando cambio los atributos para que vayan en el metodo INIT, cuando uso el "self.ruedas" me sale error haciendo referencia a que no tengo el atributo "ruedas" creado, creo que se debe a la version de python que tengo
lo pongo tal cual como lo ha puesto pero al la hora del incluirle el __int__ me aparece este error AttributeError: 'moto' object has no attribute 'ruedas'
En este ejemplo da la sensación que no se necesita constructor porque los valores "de fábrica" para la clase ya están inicializados y serán los mismos para cualquier objeto que creemos. Me equivoco? Por otra parte, si no existe el constructor, no podríamos obtener el encapsulamiento?
una pregunta, porque en el minuto 11:01 no se le coloca la palabra self a la variable arrancamos, tanto en donde se escribe para pedir el parametro como donde se declara que arrancamos es igual a self.enmarcha?
Hola, me encantan tus videos. Y disculpa, me surgió una duda En el encapsulamiento, con doble guión bajo, me marca un error. 'Coche' object has no attribute '__ruedas' Sin embargo, con un solo guión bajo resulta bien. Esto pasa por mi versión de python, es la 3.8 o es por algo distinto??? Gracias
ese encapsulamiento es similiar al private o public en C# verdad?
3 ปีที่แล้ว
Señores buenas noches, ante doto mi mas sinceros agradecimientos al profe Juan es excelente, se que hay muchos que entiende a perfección python por eso acudo a ustedes, para que me orienten, estoy siguiendo el ejerció de este video y me esta presentado un error en la linea 13 el cual dice "TabError: inconsistent use of tabs and spaces in indentation" a pesar que esta idéntico al que escribió el profe me sigue generando error, ya verifique sintaxis, indentacion, entre otros y nada por favor quedo atento.
Hola buenas, he estado buscando en foros pero no encuentro la solución, no sé que combinación he tocado en sublime pero he dejado el cursor fijo, ni se oculta ni parpadea... por favor ¿alguien sabe comoocultarlo? Si pulso insert solo lo cambio... Muchas gracias
Si no incluyes def __init__ el interprete de Python asignara por defecto el estado inicial de tu objeto. En cambio, cuando lo incluyes, tu como programador eres quien establece el estado inicial del objeto. Mi opinion personal es que se incluya por que considero que es mejor practica de programación ya que hace mas legible el codigo cuando se necesite depurar o analizar, ademas que evitas que se infiltren errores logicos en tu programa.
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/python-tutorizado/🚀
🚀 ¿Quieres que te resuelva las dudas de Python👉 www.pildorasinformaticas.es/course/python-tutorizado/ 🚀
💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
por mi situación personal apenas dispongo de dinero, por eso he hecho una donación por paypal, super mínima, pero al menos era algo que quien hace estos videos merece: un reconocimiento, por mínimo que pueda ser. gracias por estos video-cursos gratuitos y tan bien hechos.
Muchas gracias por el gesto. Esto me anima a seguir. Un cordial saludo
Excelente, hemos de acordarnos de quitar el adblock y clicar, el autor lo merece, los cursos son extraordinarlos!
Eso es lo que también deseo hacer apenas tenga empleo, se merece un premio nobel a la vocación y el servicio.
Yo le estoy dando clics a todas las publicidades para ayudar de alguna forma.
to miro todos los anuncios completos y les doy al link se lo merece el profe ;D
Uno no reconoce la calidad de este material hasta que no viene de haber visto muchísimo contenido por aparte. De verdad, profe, que me impresiona cómo es capaz de desmenuzar este tema para que nosotros podamos entender de dónde sale cada cosa. Qué pedagogía excelente!
Estos son los videos que deberian tener millones de likes, vistas y suscripciones, pero no... los tienen los videos que no aportan absolutamente nada, gracias MAESTRO por tanto!!!
Hombre Juan como decimos en Antioquia(Colombia), un Dios te pague y el Señor le multiplique, estas cumpliendo esa obra de misericordia "enseñar al que no sabe y corregir al que hierra", tengo una profesión que nada tiene que ver con programación y comencé a estudiar esto por necesidad de cambiar el perfil profesional, tienes mucho amor en lo que haces y eso se traduce en que te haces entender como pocos, eso es lo que tienen los Españoles, que siempre se han entregado sin pedir nada a cambio, mil y mil gracias
profesor es usted una persona con un vasto conocimiento, y con una capacidad de enseñar increíble, en pocas palabras un genio.
muchas gracias por estos cursos
Amigo, en POO he estado más perdida que bebe en teleserie venezolana. Estuve viendo nuevamente las clases online, estudiando cada concepto, tratando de hacer los ejercicios del profe, comparando mis respuestas con otros compas igual de perdidos para después preguntarle al profe cómo rayos era el desarrollo. En dos videos (POO III y POO IV) mi cerebro por fin hizo ese "clic" y entendí todo. Muchas gracias, me salvaste :3
Es un gran maravilloso docente, explicó dos conceptos, el encapsulamiento y el constructor, con la sencillez y elegancia de un genio desatado.
Profe, he visto casi todos sus cursos. Es un crack y un heroe. Que se jodan las Kardashian y sus millones,son personas como usted las que se inmortalizan.
Muy buen vídeo, este profesor explica de una forma tan didáctica y comprensible que merece muchos me gusta.
Gracias por el comentario. Un saludo!
Espero a alguien le sirva pero vi estos videos de POO hace 3 años. Hasta el punto en que los abandonè porque no entendia.
En el medio seguì estudiando, hice un bootcamp, me volvi a frustrar porque no te enseñan a programar sino a picar codigo solamente... y hoy puedo decir que volví a seguir intentandolo.
si estas en es mar de informacion, en ese ciclo vicioso de ver videos, etc etc... dejame decirte que aunque no parezca si sos constante lo vas a lograr.
yo volví despues de 3 años y es increible todas esas horas invertidas en js, nodejs, react, vue, freecodecamp, etc etc sirvieron.
Ahora realmente entiendo conceptos que siempre estuvieron en frente de mi todo el tiempo.
no desistan, sigan intentandolo. la clave es la perseverancia.
nuevamente agradecido por tanto conocimiento, este video tiene demasiada carne y hay que masticarlo para poder entender y retener toda esta valiosa informacion. Gracias :)
Tres visualizaciones(tomando apuntes, plasmando el codigo y tomando notas), la primera hace un par de dias, alucinaba, ayer la segunda, me costaba entender algunos concepto aún. Ahora se me abrió el cielo y fluye el conocimiento hacia mi. MIL GRACIAS JUAN
Hay muchos cursos buenos en otros canales. Pero a este señor le entiendo bastante. Aprendí a usar sockets en java mirandos sus cursos. Gracias.
Maestro muchas gracias. Es usted un grande que ha dejado huellas en nuestros corazones.
Excelsa la explicación del profe. Yo me he armado mi propio manual de videos y libros. Al que le interese se lo envío. Lo mínimo que puedo aportar ante clases tan magistrales. Bravo
Hola, buenos días!! Sigo tus cursos tutorizados, lo he retomado luego de un tiempo .... Estoy siguiendo al mismo tiempo, como una forma de repaso, la clase tutorizada con la clase gratis por youtube, por verlo con otras palabras o perspectiva el mismo y se aclaren conceptos. Didacticamente eres un crack, impresionante como transmites tus conocimientos, diria el mejor profesor de un tutorial. Me inicie con las clase gratis luego con las clases tutorizadas de pago.
Al repasar la misma clase, en el curso gratis, me he dado cuenta el "por qué" me costaba entender o dificultaba muchísimo el entender la Programación Orientada a Objetos y estaba en el ejemplo. La dificultad en el entender la P.O.O estaba en el ejemplo que utilizas, como nombras al objeto miCoche, visualmente muy parecido al nombre de la clase, que es Coche, entonces buscaba y perdía el tiempo pensando en la relación porqué nombras "miCoche" con el nombre de la clase "Coche". Una vez visionada la clase tutorizada donde nombras al objeto con Mazda o Renault la comprensión ha sido rapidisima. Claro ahora ya entiendo esa relación del objeto miCoche con la clase Coche. Todo esto lo comento, pues como te admiro, para que tengas en próximos tutoriales, estos detalles en cuenta, a la hora de nombrar ejemplos, creo que sería conveniente que los nombres o ejemplos se acercaran más a la realidad, para que no sea algo abstracto y se asimilen más rapidamente los conceptos, así como lo has hecho genial en la clase tutorizada con Renault o Mazda. Ahhh, y perdona por la extensión del comentario. Muchisimas gracias por tus clases ....
Éste video es oro puro, me despejó muchas dudas acerca de un ejercicio que traté de analizar hace un tiempo y no entendía. Gracias Juan. Un saludo.
Soy ingeniero informático y ojalá hubiese visto antes tus cursos que son una maravilla. Un saludo y gracias por tu gran labor.
Genial. Por fin estoy entendiendo la POO. Habia leido algunos libros sobre este tema, pero nunca me ha quedado tan claro como ahora. Muchisimas gracias!
Aqui pongo un ejemplo, tomando como base el ejemplo de la clase Coche que hemos visto en este video.
class Coche():
"""Clase que administra la creación de un coche."""
def __init__(self):
"""Metodo constructor. En donde estan las propiedades comunes de un coche"""
self.__ruedas = 4
self.__color = "blanco"
self.__largoCoche = 200
self.__altoCoche = 150
self.puertas = 5
self.__gps = False
self.__enMarcha = False
def arrancar(self, movimiento):
self.__enMarcha = movimiento
if(self.__enMarcha):
return "El coche esta en marcha."
else:
return "El coche esta parado."
def estado(self):
print(f"El coche tiene {self.__ruedas} ruedas. Es de color {self.__color}. Tiene un largo de {self.__largoCoche}."
f" De ancho tiene {self.__altoCoche}.")
def global_gps(self, gpsT):
self.__gps = gpsT
if (self.__gps):
return "El coche tiene sistema de GPS."
else:
return "El coche no tiene GPS."
# Creación del objeto: Toyota Camry
print("Toyota Camry")
ToyotaCamry = Coche()
print(ToyotaCamry.arrancar(True))
print(ToyotaCamry.global_gps(True))
ToyotaCamry.puertas = 4
print(f"El coche tiene {ToyotaCamry.puertas} puertas.")
ToyotaCamry.estado()
print("
***********************************Siguiente Coche***********************************************
")
# Creación del objeto: Hyundai i20
print("Hyundai i20")
Hyundaii20 = Coche()
print(Hyundaii20.arrancar(False))
print(Hyundaii20.global_gps(False))
print(f"El coche tiene {Hyundaii20.puertas} puertas.")
Hyundaii20.estado()
Excelentes videos y profesor ¡¡ Explica de forma muy didáctica y sencilla; hasta yo que tengo una cabeza pequeñita lo entiendo :)
y encima gratuitos ¡¡¡ por favor, los que puedan hagan donaciones para que siga haciendo estos cursos tan buenos ¡¡
Muchas gracias por sus videos, llevo unas semanas aprendiendo python y este curso sin duda es el mejor. He aprendido muchas cosas nuevas, pero sobre todo con lo que más se aprende es practicando, mientras veo sus videos me pongo a aplicar todo lo aprendido y la verdad lo voy entendiendo super rapido a pesar de tener 14 años! me encanta el mundo de la programación y gracias a ti puedo aprender thx profe
Muchas gracias profe , aún no termino el curso pero cada minutos que pasa aprendo mas que el anterior
Me encantó tu forma de explicar, todo quedó muy claro y entendible para mí. Me motivaste a seguir aprendiendo y mejorando mis habilidades en programación. . ¡Gracias por compartir tus conocimientos con nosotros!"
Las palabras de agradecimiento son pocas para reconocer el gesto y el valor que has puesto en dedicar un poco de tu tiempo y compartir tus conocimiento con persona que nos apasiona esta rama de programacion, no por que sea gratis si no que persona como tu hacen que otra podamos crecer, y continuar en nuestro aprendizaje en cualquier rincon del mundo y que se nos imposibilita poder costiar una preparatorio y se que personas que han visto estos videos le han sido de mucha ayuda te hablo de mi pais que es Venezuela que estamos atravezando por una gran crisis, pero se que vamos a salir de todo esto Gracias, Gracias con tinua Mil felicitaciones
Muchas gracias por tu comentario y por seguir mis vídeos con tanto interés. Me alegro mucho de que los vídeos sirvan de ayuda. Muchos ánimos a todos loe venezolanos por la dura situación que estáis atravesando. No olviden que por mucho que llueva al final siempre acaba saliendo el Sol. Un cordial saludo!!
Estoy empezando a ver estos vídeos y me parecen excelentes! Eres un tutor inclreíble al que se le entiende todo perfectamente y que me motiva a seguir estudiando. Muchas gracias por este gran esfuerzo!😁
Jesuuuuuuuuuuuuuuuuu fui a la facultad y no entendía el concepto de constructor...y tú aquí me lo explicas en dos segundos!!!!!!!!!!!!!!!! gracias!!!!
muchas gracias por este excelente curso, muy completo hasta lo que llevo viendo
Profesor muchas gracias, no había logrado entender la POO pero con usted, se me están aclarando muchas dudas.
Mil y mil gracias
Muy buenos videos, de todos los tutoriales de Python que me he visto, los tuyos son mis favoritos! Un abrazo desde Guatemala!
No puedo más que sumarme a las felicitaciones y los agradecimientos por este excelente curso. Es muy claro y didáctico. Muchos saludos desde Buenos Aires, Argentina
Superbien explicado, tomaste las palabras complejas y las redujiste a significados muy claros y fácil de entender. Gracias.
No se si sos el que mas sabe de python de youtube, pero si el que mejor enseña!! lo mejor para usted!!
eres el #1, genial! muchas felicidades, voy muy bien en tu curso, me ha servido mucho, hace mucho tuve curso de jajajaja Basic, pascal y cobol...comprendo los avances y procesos......en este video casi que caigo en la cero comprension....el concepto era claro , pero al momento de programar lineas......me dije no entiedo....hiciste correcciones y era mucho mas facil ...ufff..me causaste un susto!!.....Felicitaciones!!
Profesor esperando con ansias que avance el curso, estoy que me meto 7 vídeos por día. Muchas gracias por compartir sus conocimientos !!
Mañana mismo subo el siguiente. Gracias por seguir los vídeos. Un saludo!!
Estoy estudiando el curso de Conquer Blocks actualmente, lo estoy disfrutando pero a veces hay saltos cuantitativos en términos de código y me pierdo. Gracias a ti relleno todo lo que no pillo, eres TOP
Seguimos aprendiendo!! acabo de hacer mi propia class sobre mi y al fin entendí
Excelente material, estoy aprendiendo desde cero, esta todo muy bien explicado, muchas gracias y felicitaciones.
muchisisiissimas gracias por el contenido
no sabes cómo me ha servido porque soy estudiante de maestría en inteligencia analítica pero no estudié programación.
muchas muchas gracias
gran trabajo
saludos
Me gusta mucho la forma en que explicas porque primero vas explicando como funciona el código y luego ya dices los nombres de como se le conoce a distintos "elementos" por decirlo de alguna manera.
Profe, muchísimas gracias! :)
Una nota al pie: realmente sí es posible acceder a una propiedad "privada" desde fuera, lo que hace Python es hacer que el proceso sea más difícil a diferencia de, por ejemplo, Java donde lo privado sí es privado.
Sería más o menos así:
..
Me picó la curiosidad y busqué en internet.
Muchas gracias por estos videos. Me estan ayudando muchisimo.
Excelente dicción y pedagogía! Mis respetos y admiración. Saludos.
Gracias !! Un saludo
Muchas gracias Juan por estas entregas. Vengo al pie de la letra con los videos y practicando en paralelo. Un genio la forma de explicar!
Aquí repasando los videos, me detuve a comentarte que eres muy buen profesor, gracias :)
Gracias por enseñarnos como en clase.
Perfectamente claro el tema del encapsulamiento. Gracias por el vídeo, Juan.
muchas gracias profe por este curso esta de lo mejor
Muchísimas gracias profe es un genio enseñando!!!!
POO me ha tomado tiempo, ya comienzo a dominarlo, mil gracias pildorasinformaticas!!
Gracias profe! No he podido encontrar otra explicación del __init__ tan sencilla y poderosa como la suya. Un saludo
Muchas gracias por todos los vídeos!
Muchas gracias por tan excelente vídeo¡
Muchas gracias profe !! he aprendido mucho con usted y lo que me falta todavia ! , saludos desde República Dominicana
Excelente explicación No tenía claro lo de 'init 'y menos aún lo de 'encapsulamiento'....
Sigo paso a paso el curso, muy bueno..
quiero agradecerle por los videos. Empece a ver los tutoriales de python, y explicas muy bien entiendo todo lo que dices. 100 puntos. Y espero que hagas algunos tutoriales de C, C++, y/o Mathlab. Si sirve de algo, principalmente lo hago por agradecimiento, me quedo a ver la publicidad al comienzo de los videos que nos ofreces.
Me encanta cómo explicas las cosas, amigo. Muchas gracias.
Gracias por tu comentario. Un saludo!
quedo super bueno el video y como que deja al suspenso de los metodos encapsulados ..... esta super bueno
Seguiremos avanzando en el tema. Gracias por el comentario. Un saludo!!
Gracias profesor! En la cuarentena hay tiempo libre asi que en 3 días ya estoy por este capítulo, espero llegar a final de curso!
@Nicolás Castellanos Pues no te sé decir, que buscabas en específico?
por lo que veo del encapsulamiento, en el ejemplo de las ruedas, poniendo:
miCoche2.__ruedas = 2
print(miCoche2.__ruedas) # Sí aparece un 2 en vez de 4.
Se supone que no modifica la propiedad del constructor, pero sin embargo en el programa principal, en el objeto coche tienes otra variable que se llama igual con valor a 2? No lo acabo de entender del todo.
Muchas gracias por el curso, estoy aprendiendo Python muy rápido, ya que la exposición y material son excelentes.
que diferencia una instancia de un objeto? ¿o es lo mismo?
Simplemente excelente
Y por qué no da error al llamar a una propiedad que no está definida dentro de la clase (ej. ruedas sin guiones bajos)?
Gracias maestro !!!!!!!
Hola, me surge una pregunta. ¿Porqué dices que el constructor le asigna al objeto creado un estado incial cuando de todos modos sin el constructor ya se asigna ese estado inicial? Estoy enredado en esa parte, aún cuando no ponías el constructor, al creal un objeto y acceder a sus propiedades, las muestra en pantalla, lo cual entiendo yo como que hacen parte de su estado inicial. Muchas gracias por responder, enseñas muy bien y es porque así mismo conoces los temas.
Yo me pregunto lo mismo...
Gracias por el comentario. Porque si creas un constructor eres TÚ el que determina cuál es el estado inicial de ese objeto. Si no se utiliza constructor es Python el que le asigna a los objetos un estado inicial por defecto.
Imagina que tienes una clase "Coche" con una variable de clase de tipo boolean "aparcado". Si no utilizas constructor, Python por defecto le da como estado inicial "aparcado=false". ¿Pero y si yo quiero que el estado inicial sea "aparcado=true"? Esto no es posible hacerlo a no ser que yo cree un constructor donde la variable "aparcado" sea igual a true.
Python (y todos los lenguajes de programación orientados a objetos) siempre dan un estado inicial a los objetos a pesar de no tener método constructor. El problema surge cuando tú como programador quieres que el estado inicial de los objetos sea otro del que asigna Python por defecto. No queda más remedio entonces que crear un constructor donde TÚ eres el que da el estado inicial que quieres. Un saludo!
@@pildorasinformaticas Profe pero en el ejemplo sin usar el constructor se le puede asignar false o True a "Enmarcha" y Python se lo asigna a todos los coches que se crean. Igual podría hacerlo con Aparcado sin usar un generador. Gracias.
@@pildorasinformaticas Sigo sin acabarlo de entender... si no creas el constructor se toman las caracteristicas que habia por defecto, y si lo haces con el constructor también... soy yo siempre el que pone esas caracteristicas por defecto. No entiendo que digas python lo hace , python no ha asignado nada por defecto lo hemos puesto nosotros. Es más cuando se ha creado el constructor... no se han movido las caracteristicas.
Porque así es más fachero
Muchas gracias, fue super didáctica la clase. :)
cuando escribo def __init__(self):, se me desactiva def arrancar y def estado. A que podría ser debido? (Sí, están dentro de la función con la sangría ) me sale esto "in
print(miCoche.arrancar(True))". Gracias de antemano
Estuve toda una tarde buscando del por que me salía un error en consola (AttributeError: 'Coche' object has no attribute 'ruedas') .
Me puse a repasar todos los nombres del codigo, buscar en internet si me faltaba alguna librería o si había cambiado la sintaxis.
Resulta que estoy utilizando VisualStudio, en el autocompletado que tiene no me di cuenta y me cambio el __init__ por __int__ .
Son dos palabras/funciones que no se percibe a simple vista.
Ahora si.... a continuar con las demás clases.
Buenas. Antes que nada, darte las gracias por este cursillo gracias al cual estoy aprendiendo muchísimo y, al igual que yo, muchas personas lo estaran disfrutando. Sin embargo me ha surgido una pregunta que agradecería que me resolvieras, si no es mucha molestia. ¿Cuál es la diferencia entre declarar una propiedad fuera del constructor (como en el principio del vídeo) y declararla dentro del constructor (como en el final del vídeo)? Me harías un gran favor si pudieras responderme :)
Buenas Tarde el mas grande Genio en Programación de videos que he conocido en la RED..... Muchas Bendiciones para usted Profe,, a manera de consulta usted cree que un futuro próximo podíamos tener un curso de visual Studio con ASPX , ASP
saludos Profe
Mil Gracias por sus videos....
Muchas gracias por el comentario y por seguir mis vídeos con tanto interés. Es mi intención hacer los cursos que mencionas y muchos más. El problema es que hacer un curso de estos lleva muchísimo tiempo y voy mucho más despacio de lo que me gustaría. Por desgracia los días tienen solo 24 horas, pero poco a poco iré subiendo más cursos al canal. Un saludo!!
Enseñas muy bien!! Saludos!!
Gracias !! Un saludo
Buenas
Se puede decir o entender que las propiedades en una clase actuan como constantes ??
gracias por tomarse su tiempo en este curso, aprovecho para decir que en ya en python 3.8.1 se puede usar.
miCoche._init_()
esto te permite usar todos los atributos del constructor aunque no se si en versiones anteriores también era posible.
Osea darle al objeto su estado inicial de vuelta
al ejecutar me sale todo bien pero en la parte de miCoche2.estado() al arrancar el programa me sale none, a que se debe eso? sera porque estoy usando el IDLE Python?
Queria consultar sobre un error que me aparece.
Traceback (most recent call last):
File "C:/Users/MES/caracteres/POO_4_Otras_prop.py", line 51, in
print("El estado es", miCoche2.estado())
File "C:/Users/MES/caracteres/POO_4_Otras_prop.py", line 21, in estado
if(self.enmarcha): #Tb if(self.enmarcha)==True: (es lo mismo)
AttributeError: 'Coche' object has no attribute 'enmarcha'
El largo del chasis 250
El coche tiene 4 ruedas
El coche esta en marcha
--------A continuacion crearemos el 2do objeto--------
El largo del chasis 250
El coche tiene 4 ruedas
Process finished with exit code 1
Sucede cuando agrego la linea
print("El estado es", miCoche2.estado())
Muchas gracias.
Gracias por el Video :)
Al final del video dices que vas a enseñar a encapsular funciones dentro de clases y con que objetivo, no es necesariamente tiene que tener una finalidad si no la que todo andamos buscando que es aprender a fondo python, quizas no tengamos que encapsular nunca una funcion pero es bueno saber como hacerlo asi si vemos algun codigo en un futuro lo pudieramos entender sin estar buscando mas referencia de que hace tal cosa 😊
El mejor consejo que se puede dar en mi opinion para este curso, es que vean los videos 26 y 27 hasta que entiendas perfectamente ya que son las base para todo lo que viene. En el momento que se entienda, no tendran el problema de dejar de seguir el curso por no entender temas mas complejos.
Sos el mejor!
exelente video
estoy usando el SPYDER pero cuando cambio los atributos para que vayan en el metodo INIT, cuando uso el "self.ruedas" me sale error haciendo referencia a que no tengo el atributo "ruedas" creado, creo que se debe a la version de python que tengo
lo pongo tal cual como lo ha puesto pero al la hora del incluirle el __int__ me aparece este error AttributeError: 'moto' object has no attribute 'ruedas'
En este ejemplo da la sensación que no se necesita constructor porque los valores "de fábrica" para la clase ya están inicializados y serán los mismos para cualquier objeto que creemos. Me equivoco?
Por otra parte, si no existe el constructor, no podríamos obtener el encapsulamiento?
este video tiene mucha nformacion!!!
¿Cuál es la diferencia entre simplemente poner las variables con usar un constructor?
Excelente como siempre, espero el curso alcance django ! Saludos
una pregunta, porque en el minuto 11:01 no se le coloca la palabra self a la variable arrancamos, tanto en donde se escribe para pedir el parametro como donde se declara que arrancamos es igual a self.enmarcha?
Eres un crack viejo! muchas gracias!
Bendiciones desde Rep. Dom Santo domingo.
por que dentro del método constructor se deben poner las características precedidas de un self?
Hola, me encantan tus videos. Y disculpa, me surgió una duda
En el encapsulamiento, con doble guión bajo, me marca un error.
'Coche' object has no attribute '__ruedas'
Sin embargo, con un solo guión bajo resulta bien. Esto pasa por mi versión de python, es la 3.8 o es por algo distinto???
Gracias
ese encapsulamiento es similiar al private o public en C# verdad?
Señores buenas noches, ante doto mi mas sinceros agradecimientos al profe Juan es excelente, se que hay muchos que entiende a perfección python por eso acudo a ustedes, para que me orienten, estoy siguiendo el ejerció de este video y me esta presentado un error en la linea 13 el cual dice "TabError: inconsistent use of tabs and spaces in indentation" a pesar que esta idéntico al que escribió el profe me sigue generando error, ya verifique sintaxis, indentacion, entre otros y nada por favor quedo atento.
lo que pasa que en la línea 13 vos tocaste tab o tocaste espacio fijate eso denada
ayuda me aparece siempre dos errores atribute error y trace back (tengo la actualizacion del 20/5/2021)
Revisa el código, quizás te has equivocado en algún caracter o al identar el código
@@B3CTOR ya lo avia resuelto pero gracias igual era que havia escrito algo mal
Puede ser que en python cambiasen las variables encapsuladas? Porque si la encapsulo y la modifico, si que me cambia el valor.
Hola buenas, he estado buscando en foros pero no encuentro la solución, no sé que combinación he tocado en sublime pero he dejado el cursor fijo, ni se oculta ni parpadea... por favor ¿alguien sabe comoocultarlo? Si pulso insert solo lo cambio...
Muchas gracias
Muchas gracias!
No entendi muy bien
¿Cual es la Diferencia entre colocar def__init__ o no colocarlo?¿Afecta en algo a los Objetos?
Si no incluyes def __init__ el interprete de Python asignara por defecto el estado inicial de tu objeto. En cambio, cuando lo incluyes, tu como programador eres quien establece el estado inicial del objeto. Mi opinion personal es que se incluya por que considero que es mejor practica de programación ya que hace mas legible el codigo cuando se necesite depurar o analizar, ademas que evitas que se infiltren errores logicos en tu programa.