Básicos del Lenguaje

1

Guía de instalación y conceptos básicos

2

Archivos y slides del curso práctico de Python

3

IMPORTANTE: Instalando Ubuntu Bash en Windows para facilitarte el seguimiento del curso desde Windows.

4

¿Qué es la programación?

5

¿Por qué programar con Python?

6

Operadores matemáticos

7

Variables y expresiones

8

Presentación del proyecto

9

Funciones

10

Usando funciones en nuestro proyecto

11

Operadores lógicos

12

Estructuras condicionales

Uso de strings y ciclos

13

Strings en Python

14

Operaciones con Strings en Python

15

Operaciones con strings y el comando Update

16

Operaciones con strings y el comando Delete

17

Operaciones con strings: Slices en python

18

For loops

19

While loops

20

Iterators and generators

Estructuras de Datos

21

Uso de listas

22

Operaciones con listas

23

Agregando listas a nuestro proyecto

24

Diccionarios

25

Agregando diccionarios a nuestro proyecto

26

Tuplas y conjuntos

27

Tuplas y conjuntos en código

28

Introducción al módulo collections

29

Python comprehensions

30

Búsquedas binarias

31

Continuando con las Búsquedas Binarias

32

Manipulación de archivos en Python 3

Uso de objetos y módulos

33

Decoradores

34

Decoradores en Python

35

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

36

Programación orientada a objetos en Python

37

Scopes and namespaces

38

Introducción a Click

39

Definición a la API pública

40

Clients

41

Servicios: Lógica de negocio de nuestra aplicación

42

Interface de create: Comunicación entre servicios y el cliente

43

Actualización de cliente

44

Interface de actualización

45

Manejo de errores y jerarquía de errores en Python

46

Context managers

Python en el mundo real

47

Aplicaciones de Python en el mundo real

Conclusiones finales

48

Python 2 vs 3 (Conclusiones)

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

¿Qué es 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