Básicos del Lenguaje

1

Principios del Diseño de Software en Python

2

Desarrollo de CRUD en Python 3

3

Instalación de Ubuntu en Windows 10 paso a paso

4

Programación en Python: Ejercicios Prácticos de Línea de Comandos

5

Programación Gráfica Básica con Python y Turtle

6

Operadores Matemáticos y Tipos de Datos en Python

7

Variables y Operadores en Python: Convenciones y Uso Correcto

8

Programación de Script CLI para Gestión de Clientes en Python

9

Funciones y Librerías en Python: Declaración y Uso Práctico

10

Encapsulamiento de Funciones en Python

11

Estructuras Condicionales y Operadores Lógicos en Python

12

Funciones y Condicionales en Python para Manejo de Clientes

Uso de strings y ciclos

13

Manipulación de cadenas en Python: índices y mutabilidad

14

Operaciones comunes con strings en Python

15

Actualización de Clientes en Python: Modificar y Renombrar Registros

16

Borrado de Clientes con CRUD: Funcionamiento y Ejemplos

17

Manipulación de secuencias con slices en Python

18

Bucles y condiciones en Python: Uso de for y while loops

19

Bucle while en Python: uso y manejo de errores comunes

20

Programación eficiente con iteradores y generadores en Python

Estructuras de Datos

21

Uso de listas

22

Operadores y Métodos para Manipular Listas en Python

23

Manipulación de Listas en Python: Modificar, Iterar y Actualizar Datos

24

Diccionarios en Python: Manejo de Claves y Métodos Útiles

25

Diccionarios en Python: Estructura y Uso Práctico

26

Tuplas y Conjuntos: Diferencias y Usos en Python

27

Tuplas y Sets en Python: Uso y Manipulación Práctica

28

Estructuras y Primitivos del Módulo Collections en Python

29

Listas, Diccionarios y Sets Comprehension en Python

30

Busqueda Binaria: Encontrando Elementos en Listas Ordenadas

31

Búsqueda Binaria en Python: Implementación y Función Recursiva

32

Manipulación de archivos en Python 3

Uso de objetos y módulos

33

Decoradores en Python: Funciones que Modifican Otras Funciones

34

Decoradores en Python: cómo usarlos y ejemplos prácticos

35

Principios de la Programación Orientada a Objetos

36

Programación Orientada a Objetos: Clases y Métodos en Python

37

Namespaces y Scopes en Python: Conceptos Clave

38

Aplicaciones CLI con Click y Python

39

Estructura de Aplicaciones CLI con Python y Click

40

Modelado de Clientes con Clases en Python

41

Programación en Python: Uso de Click para Crear Comandos CLI

42

Programación de CRUD con Python: Servicio de Clientes

43

Método updateClient en Python: Actualización segura de registros

44

Automatización de Tareas con Python y CLI

45

Manejo de Errores en Python: Uso de Try, Except, Else y Finally

46

Manejo de Contextos con __enter__ y __exit__ en Python

Python en el mundo real

47

Aplicaciones Científicas de Python y sus Librerías Clave

Conclusiones finales

48

Diferencias clave entre Python 2 y Python 3

Clases bonus

49

Entorno Virtual en Python y su importancia: Python en el mundo real

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Principios de la Programación Orientada a Objetos

35/49
Recursos

La programación orientada a objetos es un paradigma de programación que otorga los medios para estructurar programas de tal manera que las propiedades y comportamientos estén envueltos en objetos individuales.

Para poder entender cómo modelar estos objetos tenemos que tener claros cuatro principios:

  • Encapsulamiento.
  • Abstracción
  • Herencia
  • Polimorfismo

Las clases simplemente nos sirven como un molde para poder generar diferentes instancias.

Aportes 41

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

PROGRAMACION ORIENTADA A OBJETOS

Encapsulation: Cada objeto tiene sus propias funciones, y datos sin afectar a otros, son lógica interna.

Abstraction: El usuario podrá interactuar con el objeto sin necesidad de conocer toda la lógica del mismo.

Inheritance: si se declara un método en una clase todas las subclases heredan ese método, es decir: si tu declaras un método “imprime” que ejecute un print en una clase, las subclases podrán usar el método imprime, sin necesidad de declararlo en cada una.

Polyphormism: usando el ejemplo anterior, en cada subclase se puede modificar el método “imprime” por lo tal cada sub clase contara con un método imprime pero acorde a las necesidades de cada subclase.

¿Qué es la programación orientada a objetos?

La Programación Orientada a Objetos viene de una filosofía o forma de pensar que es la Orientación a Objetos y esto surge a partir de los problemas que necesitamos plasmar en código.
.
Es analizar un problema en forma de objetos para después llevarlo a código, eso es la Orientación a Objetos.
.
El paradigma de Programación Orientada a Objetos se compone de 4 elementos:

  • Clases: Una Clase es el modelo por el cual nuestros objetos se van a construir y nos van a permitir generar más objetos.

  • Propiedades: Las Propiedades también pueden llamarse atributos y estos también serán sustantivos. Algunos atributos o propiedades son nombre, tamaño, forma, estado, etc. Son todas las características del objeto.

  • Métodos: Los Comportamientos serán todas las operaciones que el objeto puede hacer, suelen ser verbos o sustantivos y verbo. Algunos ejemplos pueden ser que el usuario pueda hacer login y logout.

  • Objetos: son aquellos que tienen propiedades (atributos) y comportamientos (operaciones que el objeto puede hacer), también serán sustantivos. Pueden ser Físicos o Conceptuales
    .
    Para poder entender cómo modelar estos objetos tenemos que tener claros cuatro principios:

  • Encapsulation: es hacer que un dato sea inviolable, inalterable cuando se le asigne un modificador de acceso.

    Cada objeto tiene sus propias funciones y datos sin afectar a otros, son lógica interna.

  • Abstraction: es cuando separamos los datos de un objeto para generar un molde. El usuario podrá interactuar con el objeto sin necesidad de conocer toda la lógica del mismo.

    En el caso de POO una Clase es el modelo por el cual nuestros objetos se van a construir y nos van a permitir generar más objetos.

  • Inheritance: La herencia nos permite crear nuevas clases a partir de otras, se basa en modelos y conceptos de la vida real. También tenemos una jerarquía de padre e hijo.

    Si se declara un método en una clase todas las subclases heredan ese método, es decir: si tu declaras un método “imprimir” que ejecute un print en una clase, las subclases podrán usar el método imprimir, sin necesidad de declararlo en cada una.

  • Polymorphism: Es construir métodos con el mismo nombre pero con comportamiento diferente.
    .
    Fuente: curso de Programación Orientada a objetos de Anahí Salgado

Les recomiendo el curso de POO de Platzi de la profesora Anahí Salgado.

https://platzi.com/clases/oop/

Es mi impresión o el profe dice poliformismo, luego no es polimorfismo

Encapsulation: agrupar y esconder comportamiento que no se va a compartir con el exterior.

Abstraction: nos permite eliminar complejidad adicional, que no se necesita conocer para interacturar con el objeto.

es la definicion del profesion un poco resumida… pero al leerlo mas de dos veces mi cabeza trata de entender lo mismo y me obliga a tener la necesidad de saber la diferencia…

la **abstraccion **para mi, es la manera en que se expone cierta funcionalidad, pero que de verdad no sabes como funciona(internamente), pero sabes que con el nombre de esa funcion, te va a devolver algo, sin saber su implementacion.

ejemplo: clientes = get_clients() -----> esta funcion es una abstraccion, porque sabes que vas a obtener una lista de clientes, pero no sabes de donde ni como se va a lograr, no conoces el algoritmo implementado, pero tambien podemos pensar si lo programamos orientado a objetos clientes = APIGoogle.getClients()—> aqui por lo menos nos da una pista de donde va a extrar esos clientes, de una API, pero de igual manera no sabes que codigo tiene dentro esa funcion. eso es la abstraccion

y entonces que es la encapsulacion?

la ecapsulacion, es la forma de impedir acceso a ciertas funciones o detalles de implementaciones que tu como desarrollador no necesitas conocer, entonces la abstraccion y la encapsulacion tienen cierta relacion, es por esto, que se puede confundir muy facil.

un ejemplo:
tengo un carro, pero este tiene capo y carcasa por fuera para verse bonito, para que no te intereses mucho en la complejidad de saber como funciona el motor los ciclos de los tiempos y mucho mas esto es encapsulacion, porque encapsulo encierro todo lo complejo en algo bonito y abstracto, ahora miren como me obliga a poner la palabra abstracto, es por esto que se relacionan, cuando digo abstracto es que tienes una palanca de cambios, una cabrilla, unos pedales, esto es la abstraccion, que si tu mueves la cabrilla, internamente hace algo para que el carro se mueva para la direccion que la mueves, esto que hace internamente es encapsulacion porque no tienes idea de que hace eso por dentro, solo sabes que mediante esa abstraccion, vas a lograr hacer eso.

algo importante a decir, para comprender mejor es, si tu tienes algo encapsulado quiere decir que esa funcion no la vas a exponer a otros desarrolladores, porque hace algo extrictamente importante para que ese objeto pueda funcionar. porque sabes que si lo expones al publico, pueden caer en el error de llamar esa funcion y de esa manera interrunpir el funcionamiento correcto de este objeto,(como cuando nos creemos mecanicos, movemos algo y ya no prende el vehiculo)
encambio, le damos la opcion de que mediante la abstraccion yo le expongo ciertas funciones para que el usuario interactuee y funcione las cosas como se espera…

en ciertos lenguajes, las interfaces (y, en cierta medida, las clases abstractas) proporcionan abstracción, mientras que los modificadores de acceso proporcionan encapsulación.

POLIMORFISMO!!

Principio de inheritance: nos permite modelar una jerarquía de objetos y las relaciones que existen entre ellos. En este explicación se entiende como es la estructura base de una clase. Uno de los conceptos mas complejos al empezar a programar

Hasta ahorita, las clases con Davis son buenísimas, además de que deja de forma clara los conceptos que comparte.

Les comparto mis apuntes sobre Herencia del curso de POO 💩con Python:

.

args (arguments) y kwargs (keyword arguments),

Para profundizar en el tema de patrones de diseño para las aplicaciones web en el contexto de la orientación a objetos, leer “Patterns of Enterprisa Application Architecture” de Martin Fowler

POO

  • Encapsulamiento: Agrupar y esconder información.
  • Abstracción: Elimina información adicional innecesaria.
  • Herencia: Modelar jerarquía de objetos.
  • Polimorfismo: Adaptar información en otros contextos.

Yo tambien lo conocia como Polimorfismo… pero me encanta que repasemos esto proque fue muy dificil entenderlo para mi en la escuela.

Este curso tiene de todos genial, ojalá lo implementos a fondo en el proyecto, sino pues tocará como personal.

Hay algo que me gustaría agregar y es que como se dice podemos ver a la clase como un molde y sus objetos son instancias de esa clase.

Ejemplo:

Imagina que quieres realizar pasteles, con esta premisa será más sencillo entender este paradigma.
Ahora nuestra clase es el molde del pastel🕳, (podemos realizar pasteles con diferentes sabores como vainilla, chocolate, …), el proceso de hacer ese pastel es lo que se conoce como instanciar una clase 🔥(que este caso sería hacer la masa, hornear el pastel …), y por ultimo tenemos el objeto que sería nuestro pastel🥮.

  • Ahora ten en mente que un objeto es una instancia de su clase teniendo en cuenta nuestro ejemplo esto quiere decir que los pasteles que hicimos fueron hechos a partir del molde que usamos, simple, no?.

Esta información la saque del libro:

  • Object-Oriented Python Master OOP by Building Games and GUIs by Irv Kalb

Recomendado …

Mucho cuidado con confundir Poliformismo con Polimorfismo, ya que no es lo mismo y de eso puede depender que pases un filtro o no en una entrevista

Recuerden, lo correcto es POLIMORFISMO y como buena definición pueden establecer lo siguiente:

Es la capacidad que tienen los objetos de una clase en ofrecer respuestas distintas según sea el caso

Saludos 😃

Cuando aprendí por primera vez de la programación orientada a objetos, lo lógica de esta se me hizo muy parecida a la Teoría de las Ideas de Platón (sino saben de que trata, investíguenlo).

Tomando como base esta teoría, las clases sería las ideas, eternas e inmutables, que están en el mundo de las ideas según Platón. Y las instancias de esta clase son todas las cosas que están en el mundo inteligible, y estos son copias que imitan a las ideas.

Para esta clase recomiendo mucho ya haber tomado el Curso de POO y algoritmos en Python

Saludos chicos hace tiempo escribi un post explicando conceptos basicos sobre POO espero que les funcione:

excelente resumen

Principios básicos:

  • Encapsulamiento.
  • Abstracción.
  • Herencia.
  • polimorfismo

bien

Gracias! este curso es genial

¡Gran clase! ¡gracias David!

Wey, de las mejores explicaciones que he escuchado de lo que es la Programación Orientada a Objetos. Muy bien 😉

Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.

Encapsulamiento es la limitación al acceso de variables y funciones que el usuario necesita pero realizar su proyecto pero no necesita conocer su implementación (abstracción). Este encapsulamiento trabaja con la creación de clases que permiten el acceso a la funcionalidad que se necesita.

Herencia es la relación entre clases base que funcionan como planillas para la generación de clases derivadas de esta. Permitiendo no repetir la creación de funciones individuales y definición de atributos compartidos. Facilita la modificación en conjunto de todas atributos y métodos de las clases que se encuentren alcanzadas por esta jerarquía.

Polimorfismo es la posibilidad de generar moldes de métodos para luego ser definidas por cada clase derivada de acuerdo a los atributos o formas de funcionar de cada clase.

Nuestros Turings, no son suficientes para poder modelar muchas de las cosas que se pueden lograr con la programación.

Todos los objetos son una instancia de una clase.

Poliformismo: Son aquellos atributos que se heredan, pero que tienen una modificación única para una subclase en especial.

Un buen código es aquel que es fácil de modificarse facilmente.

Herencia: Las subclases que nacen a partir de una super clase, tienen la herencia de lo métodos de su clase padre, además de tener atributos propios.

Abstracción: Es la facilidad de uso que hacemos a nuestros usuarios. Sin que vean los procesos detrás de bambalinas.

Encapsulamiento: Hemos manejado en otros paradigmas, los datos y luego su compartamiento dentro de varias funciones, pero para la programación orientada a objetos, tenemos que nuestros datos y su funcionamiento, deben ir juntos, de forma que controlemos lo que es visible y lo que no para el usuario, debido que hay procesos y datos que solo sirven para un funcionamiento interno.

Hay 4 principios básicos dentro de la programación orientada a objetos: Encapsulación, Abstracción, Herencia, Poliformismo.

La programación orientada objetos, es un paradigma que en pocas palabras, nos deja modelar objetos del mundo real al código.

Anahi Salgado te pega como digas ‘poliformismo’ así que cuidado jajajaja

Programación Oritentada a Objetos - POO

  • Encapsulamiento, agrupar y esconder comportamiento que no necesita estar expuesto.

  • abstracción, nos permite eliminar la complejidad, que el usuario no necesita para interactuar con el objeto.

  • Herencia, Permite heredar funciones, propiedades de la clase padre a la clase hija.

  • Polimorfismo, adaptar un función que una clase hija hereda de la clase padre.

  • La clase es un molde y los objetos son instancias de la clase.

Excelente, gracias