¿Qué es el ENCAPSULAMIENTO en PYTHON? - [ EJERCICIOS RESUELTOS] | Python de CERO 2021 #15

Sdílet
Vložit
  • čas přidán 25. 07. 2024
  • 📒Aprende qué es encapsulamiento en Python, uno de los pilares de la Programación Orientada a Objetos. Te lo explico con ejemplos prácticos y una breve introducción teórica.
    En encapsulamiento es una propiedad de la POO que permite regular el acceso a los métodos y las variables de una clase. Esto significa, que podemos permitir o no que se accedan a estos desde fuera de la clase. Esto permite evitar errores cuando se utilizan métodos de nuestra clase desde un programa externo a esta misma.
    Veremos que en Python no existe el encapsulamiento como tal, pero sí una convención relativa a este tema. Explicaré en qué consiste y cómo aplicarla con buenas prácticas. Espero que lo disfrutéis.
    🎬 TIMESTAMPS:
    00:00 - Inicio de Programación Orientada a Objetos. Tercera parte.
    00:37 - ¿Qué es el encapsulamiento?
    02:10 - Modificadores de acceso
    05:55 - ¿Para qué sirve el encapsulamiento?
    07:40 - Cómo funciona el Encapsulamiento en Python
    10:36 - Ejemplo práctico de Encapsulamiento en Python
    📚CÓDIGO Y REFERENCIAS:
    - Código del curso: github.com/dimas-avila/curso-...
    - Visual Studio Code (Editor de código): code.visualstudio.com/download
    🟡SI QUIERES APOYAR ESTE CANAL:
    🔴AQUÍ PUEDES SUSCRIBIRTE: / @dimasmas
    - Mi enlace de amazon afiliados: amzn.to/3ossyBA
    - Enlace de afiliado a Siteground: www.siteground.com/index.htm?...
    - Mini proyecto: www.parateletrabajo.es/
    Un blog hablando sobre el teletrabajo.
  • Věda a technologie

Komentáře • 72

  • @Unknown_User71717
    @Unknown_User71717 Před rokem +2

    No entiendo por que tienes tan pocos suscriptores si tus videos son excelentes

  • @golincho
    @golincho Před 10 měsíci +1

    Muy bien explicado el tema de la pseudoencapsulación. No lo había encontrado en otros tutoriales.
    Prosigo con el curso. Gracias.

  • @jorgemariovargas3830
    @jorgemariovargas3830 Před rokem

    Dimas, Excelente !! Gracias, es un poco enredado, pero con la practica es fácil. saludos desde Medellín(Antioquia) Colombia.

  • @laurarive8642
    @laurarive8642 Před rokem

    Me encanto el momento donde dices tomaré un sorbo de café ☕❤
    Te has ganado mi suscripción

  • @juancruzmezzopeva1494
    @juancruzmezzopeva1494 Před 2 lety +8

    buenisimo man, en varios tutoriales no explican los temas, solo dicen que lo hagamos como ellos dicen, muy buen video

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Muchas gracias Juan! Me alegra que te haya gustado el vídeo. Y bienvenido al canal!

  • @rocioramirez2378
    @rocioramirez2378 Před 10 měsíci

    La mejor explicación!! Gracias.

  • @joselpuerta2531
    @joselpuerta2531 Před 2 lety +4

    muy completo este tutorial, me has resuelto una duda que me tenia con un lag mental, gracias bro..

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Me alegra mucho haberte resuelto esa duda!

  • @javierH
    @javierH Před rokem

    Perfecto Dimas, entendida esta clase. Muy buena, gracias.

  • @sebadelajara
    @sebadelajara Před rokem

    gracias rey, me suscribí mientras tomabas cafe.

  • @juansebastianvelascogomez6497

    Excelente aporte, realmente es la primera vez que lo veo en un video.

    • @Dimasmas
      @Dimasmas  Před rokem

      Jeje pocas veces se explica

  • @alejopucheta246
    @alejopucheta246 Před 11 měsíci

    Excelentemente bien explicado. No he visto en otros tutoriales que te expliquen porque no existe el encapsulamiento en python.

  • @blackrock2222
    @blackrock2222 Před 2 lety +6

    Increíble, no entendía nada bro.. ahora todo tiene sentido +1 +like +share

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Genial me alegra haberte ayudado!

  • @charlyc5753
    @charlyc5753 Před 8 měsíci

    Excelente video. Muy bien explicado.

  • @MasTerPlusTer
    @MasTerPlusTer Před 2 měsíci

    yo no se si es que python ha actualizado y cambiado todo, o si es porque estoy trabajando en micropython, pero ,en micropython trabajo con __pi desde fuera de la clase, lo mando imprimir y todo y ningun problema , lo intento con dos guiones , con un guion y sin guiones , y todo igual , ningun error.
    Gran video muy claro de entender todo, saludos

  • @ezequielalbano7056
    @ezequielalbano7056 Před 2 lety +3

    muy bien explicado, me encantan tus videos, se entiende muy facil

    • @Dimasmas
      @Dimasmas  Před 2 lety

      Que bien, me alegra que se entienda todo 😊

  • @diegojordan5093
    @diegojordan5093 Před rokem +1

    Muy bueno!...y mis saludos al locutor de los primeros 5 segundos de todos los videos! :p

    • @Dimasmas
      @Dimasmas  Před rokem

      Ajajaja muchas gracias 😊

  • @luismiguelbenavidesagreda6616
    @luismiguelbenavidesagreda6616 Před 11 měsíci

    Gracias mil

  • @stephanyvalarezo9100
    @stephanyvalarezo9100 Před rokem +1

    Increible video! Me causo mucha risa cuando explica lo de los atributos "privados" de python. Muchas gracias por compartirnos ese dato!

  • @hu316
    @hu316 Před 3 lety +4

    Excelente video, lo explicaste de una manera simple pero completa.

    • @Dimasmas
      @Dimasmas  Před 3 lety +1

      Muchas gracias Hector, y bienvenido al canal!

  • @jorgegarzon8385
    @jorgegarzon8385 Před 2 lety

    Qué grande, gracias.

  • @robertosevilla8007
    @robertosevilla8007 Před rokem

    Muchas gracias por el contenido, esta muy bien estructurado, facilita el aprendizaje para quienes no tienen un contexto previo

    • @Dimasmas
      @Dimasmas  Před rokem

      Menudo halago!!! Muchas graciass

  • @carolinasena7476
    @carolinasena7476 Před 2 lety +1

    Que importante tu aporte!! Gracias.

    • @Dimasmas
      @Dimasmas  Před 2 lety

      Gracias a ti por verlo y comentar!

  • @carlosmadrid9151
    @carlosmadrid9151 Před rokem +1

    Muchas gracias por el aporte. Entendí más y mejor en los 30 minutos de tu clase, que con horas de otros tutoriales. Excelente vídeo.

    • @Dimasmas
      @Dimasmas  Před rokem

      Genial! Que bien que lo hayas entendido!

  • @pabloalonso872
    @pabloalonso872 Před 2 lety +1

    te amo bro, explicas anashei, vos sabes que no entendia nada, hago click aca, y me voy sin ninguna duda, toma tu like y me suscribo makina mostro

    • @Dimasmas
      @Dimasmas  Před 2 lety +2

      Bro tu comentario es GOOOOOOD jajajaaja me hizo el día! Nos vemos por el canal

  • @jesusmedina7461
    @jesusmedina7461 Před rokem

    Wow hermano realmente me encantan tus clases.

  • @facu7633
    @facu7633 Před 2 lety +1

    Buenísimo el video Dimas me encantó. nuevo sub

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Genial! Bienvenido Facu 🥳

  • @noxiousowl7320
    @noxiousowl7320 Před 2 lety +2

    Muy buen vídeo DImas, como siempre, cada vez más cerca de poder hacer cositas grandes...

    • @Dimasmas
      @Dimasmas  Před 2 lety

      Muchas gracias 😌. Ya no te queda nada! Qué tipo de programas te gustaría hacer?

    • @noxiousowl7320
      @noxiousowl7320 Před 2 lety +2

      @@Dimasmas Pues con python estaría bien apps o webs. Podrías explicar la base de html y css.

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      @@noxiousowl7320 Has tenido suerte! Tengo un par de vídeos de Flask, para desarrollo backend de webs con Python.
      Las bases de HTML5 las explico en este vídeo: czcams.com/video/LcHeLrg9txI/video.html
      Y estoy preparando más cosas para desarrollo web!

    • @noxiousowl7320
      @noxiousowl7320 Před 2 lety +1

      @@Dimasmas Graciasss, no había visto lo de html.

  • @danielinfantes1799
    @danielinfantes1799 Před rokem +1

    Aún no supero la noticia de que en paiton no se pueda encapsular realmente... y qué pasó con los 4 pilares de POO??? Paiton solo usa 3?

  • @albertoveliz719
    @albertoveliz719 Před 2 lety +1

    Muy buen vídeo, menos mal que explicaste esto.

  • @rocodev23
    @rocodev23 Před rokem

    Acabo de venir de un curso que hago en Udemy, muy buen profesor pero se le paso esto. jeje Y yo que pensaba que era una encapsulación forzada en Python o algo así, cuando siempre fue un simple cambio de nombre del atributo. La traición, la decepción hemano jaja. Me suscribo por enseñarme eso. :D

    • @Dimasmas
      @Dimasmas  Před rokem +1

      Muchas veces no se explica esta parte. Bienvenido al canal!

  • @danielinfantes1799
    @danielinfantes1799 Před rokem

    Me has flipado, se me quitó el sueño.

    • @Dimasmas
      @Dimasmas  Před rokem +1

      Ajajajaj, siento haberte quitado el sueño amigo

  • @rafaelrafael4843
    @rafaelrafael4843 Před 2 lety +1

    Hola Dimas como te va? Fijate que pasa una cosa extraña mirando el atributo seudo privado self.__radio, si intento modificar su valor a través de "c1.radio = 10", por ejemplo... No salta ningun error en la ejecucion, pero si me doy cuenta que no se ven alterados sus metodos, ni tampoco el valor de radio en el circulo, mas bien es como si python me creara otra variable nueva (Si lo mando a imprimir con un print() me arroja "10"... Ahora bien, si self.__radio lo convierto en publico de nuevo si se mira afectado el cambio de valor. Pero en ningun caso salta ningun error, como a que se deberá?

    • @rafaelrafael4843
      @rafaelrafael4843 Před 2 lety

      En la ultima parte quise decir que si radio se hace publico el atributo radio si se mira afectado el cambio del valor en la clase, metodos etc

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Cuando haces c1.radio=10 estás añadiendo un nuevo atributo al objeto c1. Para Python c1.radio y c1.__radio son atributos distintos. Puedes hacer la prueba poniendo c1.diametro=20 por ejemplo (o cualquier nombre) y verás que se crea un nuevo atributo.
      Si en vez de self.__radio en la clase lo defines como self.radio, cuando crees una instancia de Circulo, sí que podrás modificar el radio haciendo c1.radio = 23, ya que estás accediendo directamente al atributo radio definido en la clase.
      Espero que te haya ayudado!

  • @jcmm0305
    @jcmm0305 Před 4 měsíci

    Me gustaría practicar todo lo que estoy aprendiendo y no quedarme solo con la teoría acumulada, conocen alguna pagina o libro con ejercicios donde pueda practicar ?

  • @Emilito180
    @Emilito180 Před rokem

    Cómo se podría codificar la clase encapsulada Point?

    • @Dimasmas
      @Dimasmas  Před rokem

      A qué te refieres von la clase Point??

  • @KanguroJack___
    @KanguroJack___ Před 2 lety +1

    por eso Pycharm no me reconocía los métodos o atributos privados. Entonces para Python nos podemos mover bien con los 3 otros pilares, ¿cierto?

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Sí aunque no es que la encapsulación no se utilice, sí que se utiliza. No obstante, el lenguaje no proporciona ningún mecanismo para forzar a usarla (como Java o C++ que sí lo hacen), sino que es una responsabilidad del desarrollador si la usa y la respeta o no.

    • @KanguroJack___
      @KanguroJack___ Před 2 lety +1

      @@Dimasmas el uso del encapsulamiento tiene que ver en algo con la seguridad o vulnerabilidad de un código?

    • @Dimasmas
      @Dimasmas  Před 2 lety +2

      @@KanguroJack___ Des de un punto de vista de cinerseguridad no. Pero sí en cuanto a robustez del código, es decir, que sea menos propenso a fallos. Por ejemplo, imagina que usas una librería externa que te permite hacer una tarea compleja con poco código. Tu simplemente usarías: funcionCompleja()
      Pero esta función, posiblemente use muchas otras funciones, variables y objetos que se encargan de ir realizando dicha tarea, sin necesidad de que tu los utilices. Por tanto, la función está encapsulando la complejidad del código, y esto lo hace más robusto a errores.

  • @yiyosm
    @yiyosm Před rokem

    Te ha faltado modificar el constructor al inicio, para no dejar definir el radio negativo o poner un texto como radio... De todas maneras es muy didáctico tu canal!"

  • @luisolazo6507
    @luisolazo6507 Před 5 měsíci

    Entonces si no hay encapsulamiento no se debería decir que Python es directamente orientada a objetos. Un objetos se define como "Un conjunto de funciones que operan sobre elementos de datos encapsulados, mostrando comportamiento y ocultando sus datos", y Python no lo cumple, podríamos decir que es un intento de lenguaje orientado a objetos.

  • @bychrix
    @bychrix Před rokem

    no mms vi un video hace unos días y decían que se ponía privado poniendo el guion bajo

  • @joacosamyn2911
    @joacosamyn2911 Před 2 lety +1

    muy bueno dimas, te sigo molestando, no me mates, jeje, no tanto por el encapsulado, sino más bien pq en tu ultimo ejemplo es como que buscas validar de alguna forma el que la persona ingrese el valor correcto, sin embargo NO LE DAS LA POSIBILIDAD DE QUE VUELVA A INGRESAR EL VALOR CORRECTO, o sea en c++ y creo que en otros lenguajes existe la combinación de DO WHILE que permite entrar en un bucle del cual no sale HASTA QUE INGRESA UN DATO CORRECTO O PERMITIDO, eso he visto que python no existe, por lo que si ingreso mal el dato, como puedo hacer para que vuelva a ingresar un dato correcto??,

    • @Dimasmas
      @Dimasmas  Před 2 lety +1

      Hola Joaco! Fíjate que en el método setRadio() es el programador quien define en el propio código el valor del radio, es decir, no le estamos pidiendo al usuario que ingrese un valor.
      No obstante, para emular la funcionalidad de un do while, podrías hacer lo siguiente:
      radio = None
      while True:
      radio = input("Radio: ")
      if radio.isnumeric():
      radio = float(radio)
      break
      else:
      print("Valor incorrecto...")
      self.radio = radio
      De esta forma como mínimo se ejecutará código dentro del bucle 1 vez, y en cuanto el usuario introduzca un valor numérico correcto, saldrá del bucle.

  • @hooverzavala4560
    @hooverzavala4560 Před rokem +1

    6:48 Ah me esta cargando, yo creo que Python me esta cargando xD

    • @Dimasmas
      @Dimasmas  Před rokem

      es una realidad dura que tenemos que aceptar

  • @jeffersonmaxmejia
    @jeffersonmaxmejia Před rokem

    ya te as suscrito perfecto
    no te as suscrito perfecto
    😂😂😂

    • @Dimasmas
      @Dimasmas  Před rokem

      Aquí aceptamos todo tipo de viewers jajaja