El MÉTODO __init__ y SELF - Curso desde cero Programación Orientada a Objetos Python - Capítulo 3
Empezamos a abordar un tema fundamental en la programación orientada a objetos de Python, el método constructor _init_ y una pequeña explicación sobre self.
Todo el código del capítulo y temario en mi sitio web:
www.programacionfacil.org/cur...
🔷¿Tienes dudas o sugerencias? Comenta.
🔶Curso básico a avanzado de Python (COMPLETO):
bit.ly/3agrFF7
🔴Instagram: programacion_facil
⚫Twitter: bit.ly/37aeJAe
🔵Facebook: bit.ly/2OgJT0a
🔴GitHub: bit.ly/39h38PW
🔶Más cursos de programación aquí:
bit.ly/2Wny244
🔷Vector de la miniatura:
www.freepik.es/fotos-vectores...
Vector de Café creado por macrovector - www.freepik.es
🔷Vector de televisor:
www.freepik.es/fotos-vectores...
Vector de Fondo creado por vectorpocket - www.freepik.es
Пікірлер: 125
Eres buenísimo tío, no cualquiera posee esas habilidades pedagógicas. Pareces llevar un seguimiento mental de forma natural de cuales son los puntos débiles, a la hora de afrontar los problemas, por parte de tus alumnos, y te adelantas con las explicaciones.
@ProgramacionFacilYT
2 жыл бұрын
Wow es un halago. Muchas gracias, intento hacer lo que creo que me hubiese venido mejor a la hora de aprender. Por otro lado, explicar las cosas con ejemplos es imprescindible para entender cualquier cosa. ¡Un saludo! 😄
@pipa37
2 жыл бұрын
@@ProgramacionFacilYT Gracias por aportar de esa manera a la comunidad. A darle caña !!
@ProgramacionFacilYT
2 жыл бұрын
A darle caña!!! 💪
No es tan difícil explicar las cosas bien, joder!!. Que buena explicación, muchas gracias por eso.
@Chenchomartinezmartinez-yb7or
5 ай бұрын
Ostia me iré a tomar por 😏
tio.... no se porque no encontre tu canal antes.... ENHORABUENA POR ESTOS VIDEOS!!!!!
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias! De verdad. :D
Excelente, muchas gracias!!!! estoy en un curso y no entendía mucho, gracias, excelente explicación y súper didáctico!!!!!! 🥰
@ProgramacionFacilYT
4 жыл бұрын
Muchas gracias, me alegro que te haya servido. ¡Saludos!
La verdad estoy estudiando programación me pierdo mucho en algunas cosas pero con videos así sinceramente se puede entender mucho
Exelente...El que no entienda con esta explicacion que cambie de profesion...Gracias
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias! :D Perdón por no responder antes, entre el lío que llevo, no me da para contestaros a todos. ¡Saludos!
Magnífica explicación del init y el self. Muchísimas gracias
@ProgramacionFacilYT
3 жыл бұрын
Gracias a tí 😉
gracias a tus videos en la uni he podido sacar muy buenas calificaciones incluso en ocasiones la nota mas alta... gracias por tanto sigue asi
Muchísimas gracias, muy buena explicación, voy a guardar tu curso entero para verlo
@ProgramacionFacilYT
6 ай бұрын
¡Un placer! Si te gusta después de verlo, te recomiendo mi nuevo curso de programación orientada a objetos, con Python. Saldrá el mes que viene y tendrá mucho más que este. ¡Un saludo!
Excelente explicación. Al fin entiendo lo que hace el constructor.♥ Gracias
explicar así de bien no es normal. muchas gracias machoo
Vi varios videos sobre este tema pero el tuyo me aclaró mucho más, gracias!!😁😁👍
Lo explicaste genial amigo, lo haces ver fácil cuando es un tema complicado digamos. Excelente explicación genio!
@ProgramacionFacilYT
2 жыл бұрын
Hola amigo. Me alegro que te sirva. Muchas gracias por tu comentario 😄. ¡Saludos!
WOW tanto tiempo sin saber porque lo escribia jaja MUCHAS GRACIAS POR TU TIEMPO Y ESFUERZO, La explicacion es buenisima
@ProgramacionFacilYT
3 жыл бұрын
Jeje, suele pasar hay cosas que las hacemos repetidamente en programación y si no se indaga un poco no sabe uno porqué. Me alegro que te sirviera y muchas gracias por dejarme un comentario. ¡Saludos!
Que excelente video. Muchísimas gracias !!!
Muy bien explicado. Me ha sido de gran ayuda
muy buen video, explicas desde 0 para todo el publico, super bueno
@ProgramacionFacilYT
Жыл бұрын
¡Muchas gracias!
Mil gracias, hermano. Estoy tomando un curso de estadística computacional con Python y no entendía nada de esto. Explicas super bien.
@ProgramacionFacilYT
3 жыл бұрын
¡Muchas gracias! Me alegra que te sirva. Espero que puedas aprenderlo así con más ganas.
@cgaltruist2938
2 жыл бұрын
si explicas muy bien ! Gracias
@ProgramacionFacilYT
2 жыл бұрын
¡Gracias! 😃
@cgaltruist2938
2 жыл бұрын
@@ProgramacionFacilYT He aprendido mucho con tus videos. Tienes un canal especifico para compartir, hacer preguntas como Discord o tu propia pagina? Gracias por los videos.
@ProgramacionFacilYT
2 жыл бұрын
Hola, no tengo, casi ni me da para dedicarme a KZread. Si tienes alguna duda relacionada con el capítulo déjame un comentario aquí o en mi sitio web. Si tienes alguna sugerencia para que haga un vídeo o curso sobre un tema en específico, también me lo puedes decir por aquí. No siempre puedo contestarlo todo, pero lo intento. ¡Saludos!
Excelente explicación, justo lo que necesito para aprender lo que siempre se me dificultó en POO. Nuevo suscriptor. 👏
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias! 😀
excelente explicación, me estaba confundiendo mucho el self y el innit, pero termina siendo bastante fácil, incluso más sencillo que en java
No le veía el sentido el uso de los constructores :1 y busque varios videos y nada. Al fin lo he comprendido :,) gracias. Nuevo sub.
@ProgramacionFacilYT
3 жыл бұрын
Me alegro de que lo hayas entendido 😁 un saludo y gracias por la sub.
Gracias, ahora entendí. Muy buen ejemplo.
no lo entendía bien, pero ya lo entiendo mejor gracias.
@ProgramacionFacilYT
3 жыл бұрын
¡Me alegro! Gracias por comentar 😄. ¡Un saludo!
Excelente. Muchas gracias.
Amo tus videos voy a seguir tu curso
@ProgramacionFacilYT
Жыл бұрын
¡Muchas gracias! Espero que aprendas mucho.
Excelente explicación, gracias por el video!
@ProgramacionFacilYT
2 жыл бұрын
¡Gracias a ti!
este tipo me explico en 15 minutos lo que mi decano no pudo en 3 horas
que buena explicacion!!! millones de gracias
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias!
Gracias, por el video, muy interesante, gracias!!
@ProgramacionFacilYT
Жыл бұрын
¡Muchas gracias!
muy entendible y gracias
Monstruo de profesor 🎉mejor que otros que te escupen muchos conceptos
por fin entendí, gracias
Excelente!
Muy bien detallado.Gracias
@ProgramacionFacilYT
3 жыл бұрын
Hola, ¡muchas gracias!
PFFF explicas demasiado biennnn!
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias! 😄
Muy buena explicación! Una pregunta, como gestionaríamos el _init_ para atributos que provienen de un diccionario que has definido previamente?
Gracias!
Buenísimo!
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias!
Muy curioso el detalle de poder declarar un atributo fuera de la declaración de la clase. La verdad que ofrece una flexibilidad muy importante, cosa que en otros lenguajes como C++ es impensable. Lo bueno, es que si necesitas un atributo que se te haya ocurrido para algo del programa, poder instanciarlo del tirón. Nuevamente, enhorabuena por los vídeos My Friend ;) un abrazote.
@ProgramacionFacilYT
4 жыл бұрын
Sí, la flexibilidad es creo yo lo más característico de Python. Muchas gracias por tus comentarios. Otro abrazo para tí. Saludos :)
@JohnyCruel
4 жыл бұрын
Programación Fácil la verdad es que cuanto más voy aprendiendo, más me voy sorprendiendo de la enorme flexibilidad de Python.... Mola 😉
gracias carnal, no lo habia entendido en un libro
@ProgramacionFacilYT
3 жыл бұрын
¡De nada! Si te sirvió, perfecto. ¡saludos carnal!
Se agradece 🛐
@ProgramacionFacilYT
2 жыл бұрын
¡Muchas gracias por comentar!
gracias!
mejor explicado imposible!
@ProgramacionFacilYT
Жыл бұрын
¡Muchas gracias!
Hermano, es buenísima tu explicación! Soy re novata, pero si es por entender, entendí todo 🤣
@ProgramacionFacilYT
3 жыл бұрын
Muchas gracias por tu comentario, me alegro qué te sirva ¡Saludos!
gracias crak!
Muy buen te felicito
@ProgramacionFacilYT
Жыл бұрын
¡Muchas gracias!
Creo que olvidaste decir en tu video que el __init__ y el self son necesarios porque no se puede pasar parametros a una clase de la misma manera en la que se los pasamos a una funcion. Por ejemplo, el codigo a continuación daría un error NameError: name 'a' is not defined, ya que es necesario usar self para pasar los parametros a una clase. class Tango(a, b): bailar = a pasos = b
explicación óptima!
@ProgramacionFacilYT
3 жыл бұрын
¡Gracias! 😁
Haces honor al nombre de tu canal jaja Muy buenos cursos!.
@ProgramacionFacilYT
4 жыл бұрын
Jajaja, muchas gracias me alegro que así sea y que aprendáis mucho. ¡Saludos!
Buen tutorial.
@ProgramacionFacilYT
3 жыл бұрын
¡Muchas gracias!
grax
comprendo el tema bien aunque aun creo que me falta un detonante para que sea mi centro de atención en la programación gracias por el video :)
@ProgramacionFacilYT
3 жыл бұрын
Gracias a tí por verlo y comentar :D ¡saludos!
Muy buena explicacion
@ProgramacionFacilYT
3 жыл бұрын
¡Muchas gracias!
@yonattandiazrodriguez6948
3 жыл бұрын
Desde República Dominicana en verdad quiero aprender a programar siempre ha sido mi sueño pero por falta de explicación clara me desanimo y en verdad contigo he entendido perfectamente
@ProgramacionFacilYT
3 жыл бұрын
Espero seguir ayudándote con mis vídeos, es genial que te sivan. ¡Saludos!😁
es posible instanciar una clase dentro de una funcion?, si lo es como se haria?
hola, y si quiero crear un nuevo atributo fuera de la clase al cual le asigne un valor, por ejemplo nº de armas, como haría para que este se incluya como parámetro.?De antemano gracias por la respuesta y gracias por subir videos sobre POO en python
@ProgramacionFacilYT
4 жыл бұрын
Esto lo podrías hacer utilizando *args y **kwargs para no definir de entrada los parámetros obligatorios, es decir, que se incluyan los que vayas especificando cuándo quieras. Lo tengo explicado aquí con las funciones: *args: kzread.info/dash/bejne/nmSuyKuhiMa0aZc.html **kwargs: bit.ly/36vEGu1 Lo puedes ir viendo para ir adelantando, pero no te preocupes mucho, ya que voy a incluir esto en el curso. Por cierto, gracias a tí por comentar y ver los vídeos. ¡Saludos!
@isaachb8102
4 жыл бұрын
@@ProgramacionFacilYT gracias los ire viendo y en un futro espero lo complementes en el curso.Gracias por la respuesta.
Me quede pensando como agregaste ninja.salto = True y por que no lo agregaste dentro del parametro def.
hola intento duplicar m menú pero no me sale segun yo es y ya menu = move(master) tambien intente self pero no se que se hace en frame.pack() y scale.grid(row=0) class move: def __init__(self, master): frame = Frame(master) frame.pack() scale = Scale(frame, from_=0, to=180,orient=HORIZONTAL) scale.grid(row=0) #Aqui para el doble menu = move(master)
Bro una consulta en java seria totalmente igual lo digo porque en java he visto constructores vacios y con parametros me podrias orientar gracias
@ProgramacionFacilYT
3 жыл бұрын
No tengo Java muy fresco ahora mismo, por lo que he buscado un poco de información sobre el tema. Quizás podría servirte esto de aquí: www.it-swarm-es.com/es/java/diferencia-entre-python-self-y-java/1045346489/
Buenos días, esos son los únicas formas de usar el "self" en Python?
Muy buena explicacion, he visto varios de tus videos acerca del __init__ y self, pero aun tengo una duda que me rompe la cabeza, supongamos que tengo este trozo de codigo: class User: def __init__(self, username, id): self.usern = username self.id = id self.followers = 0 self.followings = 0 def follow(self, user): user.followers += 1 self.followings += 1 user_1 = User("toni", "1234") user_2 = User("ninja", "5678") user_1.follow(user_2) print(user_1.followers) print(user_1.followings) print(user_2.followers) print(user_2.followings) por que el print seria: 0 1 1 0 SI en la funcion: def follow(self, user) dice primero que user.followers aumenta 1 pero luego dice self followings aumenta 1... por que no dice self en las dos? espero tu respuesta, muchas gracias
excelente video .una pregunta como se llama el editor que usaste paychart?(es bastante amigable ) .
@ProgramacionFacilYT
3 жыл бұрын
Hola, si es PyCharm, aquí tienes la página oficial de descarga www.jetbrains.com/es-es/pycharm/
@moisestalaveraurriburu9502
3 жыл бұрын
@@ProgramacionFacilYT gracias, te ganaste un suscriptor mas🙂
@ProgramacionFacilYT
3 жыл бұрын
Muchas gracias, 😄 ¡Saludos!
por què a veces se usa el return y a veces no como en este vìdeo, ? eso me tiene un poco confundido, he visto muchos vìdeos que enseñan las funciones dicendo que hay que colocarlo siempre porque la funciòn siempre tiene que devolver algo.
Tengo la duda de porque usar una class en vez de la función que retornaria los valores y ya?
@ProgramacionFacilYT
2 жыл бұрын
Las clases sirven para poder generar tantos objetos como quieras. Se establecen unas características generales a partir de las cuales se crean objetos que pueden tener diferencia unos de otros. Por ejemplo, los NPC de un juego como GTA. Todos son parecidos, pero hay variaciones entre la ropa, la masa corporal, el pelo, etc. Las funciones no pueden hacer todo eso.
@miguelcortes0999
2 жыл бұрын
@@ProgramacionFacilYT ya entiendo, una función retorna lo mismo siempre, una clase puede retornar múltiples datos, permitiendo tener variaciones
Pero entonces puedo tener 3 selfs simultáneos?
Vale pero ese "true" existe dentro de "class" o de "def __init__()" si me lo explicas estaria muy agradecido
@ProgramacionFacilYT
3 жыл бұрын
Si te refieres al true del atributo salto, pertenece solo al objeto, es una propiedad de él, y puesto que el __init__() está dentro de la clase, no se almacena ahí ni dentro de la clase, ya que cualquier otro objeto que crees, no va a tener este atributo, demostrando, que sólo existe en el propio objeto.
atrasado, mas firme aqui
sigo sin entender para que sirve el self
Se podria definir los valores de los Objetos en funcion a los valores de los parametros de la Clase ? es decir... ninja.hp = 100 ninja_enemigo.hp = 80% * ninja.hp usando los pases de parametros usando __init__ y self ?
La verdad no entendi muy Bien el Metodo init
@ProgramacionFacilYT
3 жыл бұрын
Hola, básicamente, para que lo entiendas quizás más fácil, el método init son los atributos iniciales que va a poseer cualquier objeto que crees de esa clase. Por ejemplo, en un juego, tienes un personaje principal y creas una clase para definir ese personaje. En el método init, le puedes poner los puntos de vida, la velocidad, los poderes que tenga,etc. Por si no entendiste lo del self, piensa en que cada vez que escribes el self de una variable, en realidad es como poner nombre_clase.variable y en lugar de estar repitiendo cada vez el nombre de la clase, en Python se pone self. Espero que te sirva, pero si te quedan más dudas con lo mismo, ya sabes dónde estoy (aunque no siempre podré contestar tan rápido jajaja). Saludos y espero que con esto puedas seguir aprendiendo.
Hola, con la programación exactamente igual y en Pychart me sale error ¿Por qué motivo?: class NinjaPrincipal: def ___init___(self,hp,resistencia,xp,vidas): self.hp = hp self.resistencia = resistencia self.xp = xp self.vidas = vidas def gameOver(self): print('gameOver') Ninja = NinjaPrincipal(100,50,1,1) NinjaEnemigo = Ninjas(25,10,1,1) print(NinjaEnemigo.resistencia) ------------------------------------------------------------- Traceback (most recent call last): File "C:\Users\ll.....\PycharmProjects\pythonProject\Prueba.py", line 11, in Ninja = NinjaPrincipal(100,50,1,1) ^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: NinjaPrincipal() takes no arguments
class InteligenciaServicial: def __init__(self, nombre): self.nombre = nombre def saludar(self): return f"Hola, soy {self.nombre}. ¿En qué puedo ayudarte hoy?" def realizar_tarea(self, tarea): return f"Realizando la tarea: {tarea}. ¿Necesitas algo más?" # Crear una instancia de la inteligencia servicial mi_inteligencia = InteligenciaServicial("Asistente") # Ejemplo de uso print(mi_inteligencia.saludar()) print(mi_inteligencia.realizar_tarea("Buscar información"))