Fundamentos de Programación y Python

1

¿Por qué aprender Python?

2

Introducción a Python

3

Conceptos Básicos de Programación

4

Práctica: Te doy la bienvenida a los ejercicios interactivos

5

Manipulación de Cadenas de Texto en Python

6

Enteros, Flotantes y Booleanos

7

Todo lo que Debes Saber sobre print en Python

8

Operaciones Matemáticas en Python

9

Operaciones de Entrada/Salida en Consola

Colección y Procesamiento de Datos en Python

10

Listas

11

Método slice

12

Listas de más dimensiones y Tuplas

13

Aplicación de Matrices

14

Diccionarios

15

Comprehension Lists en Python (CLASE NUEVA)

Control de Flujo en Python

16

Estructuras condicionales

17

Bucles y Control de Iteraciones

18

Generadores e Iteradores

Funciones y Manejo de Excepciones en Python

19

Uso de Funciones en Python

20

Funciones Lambda y Programación Funcional en Python

21

¿Cómo realizar una función recursiva en Python?

22

Manejo de Excepciones y Uso de Pass (CLASE NUEVA)

Programación Orientada a Objetos en Python

23

Fundamentos de Programación Orientada a Objetos en Python

24

Ejercicio Biblioteca con POO

25

Herencia en POO con Python

26

Objetos heredados

27

Los 4 pilares de la programacion orientada a objetos

28

Uso de super() en Python (CLASE NUEVA)

29

Superando los Fundamentos de Programación Orientada a Objetos en Python

Lectura y escritura de archivos

30

Manejo de Archivos .TXT (CLASE NUEVA)

31

Manejo de Archivos CSV (CLASE NUEVA)

32

Manejo de Archivos JSON (CLASE NUEVA)

Biblioteca estándar de Python

33

Librería Statistics y Análisis Estadístico (CLASE NUEVA)

34

Biblioteca estándar en Python (CLASE NUEVA)

35

Librería Os, Math y Random (CLASE NUEVA)

36

Proyecto final: Guerra naval

Conceptos avanzados de Python

37

Recapitulación de lo aprendido hasta ahora

38

Escribir código Pythonico y profesional

39

Comentarios y Docstrings en Python

40

Scope y closures: variables locales y globales

41

Anotaciones de tipo

42

Validación de tipos en métodos

43

Librería Collections y Enumeraciones

Decoradores

44

Decoradores en Python

45

Decoradores anidados y con parámetros

46

Uso de Decoradores en clases y métodos

Métodos y estructura de clases en Python

47

Métodos mágicos

48

Sobrecarga de operadores

49

Implementación de `if __name__ == "__main__":`

50

Metaprogramación en Python

51

Uso de *args y **kwargs

52

Métodos privados y protegidos

53

Gestión avanzada de propiedades

54

Métodos estáticos y de clase avanzados

Programación concurrente y asíncrona

55

Introducción a la concurrencia y paralelismo

56

Threading y multiprocessing en Python

57

Asincronismo con asyncio

58

Asincronismo y concurrencia

Creación de módulos y paquetes

59

Creación de módulos en Python

60

Gestión de paquetes

61

Publicación de paquetes en PyPI

Proyecto final

62

Implementación de un sistema completo

63

Implementación de un Sistema Completo

Curso de Python

Curso de Python

Carli Code

Carli Code

Superando los Fundamentos de Programación Orientada a Objetos en Python

29/63

Lectura

Para entender mejor la Programación Orientada a Objetos (POO), es esencial recordar los conceptos básicos de atributos y métodos.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 18

Preguntas 1

Ordenar por:

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

Entendí mucho mejor la POO pero es verdad que para nosotros los novatos en estos temas estaría genial un video de introducción para que no nos perdamos tanto y evitemos la frustración al inicio de no entender nada.
### Resumen y Explicación #### Atributos y Métodos * **Atributos**: Son variables asociadas a una clase o a sus objetos que definen sus propiedades. Por ejemplo, una clase `Persona` podría tener atributos como `nombre`, `edad` y `dirección`. * **Métodos**: Son funciones definidas dentro de una clase que describen los comportamientos de los objetos de esa clase. Por ejemplo, en la clase `Persona`, podríamos tener métodos como `hablar`, `caminar` y `comer`. #### Uso de `super()` en Python La función `super()` permite acceder y llamar a métodos definidos en una superclase desde una subclase. Esto es útil para extender o modificar la funcionalidad de los métodos de la superclase sin repetir la implementación completa. #### Jerarquía de Clases y Constructores Cuando una clase hereda de otra, y esta a su vez hereda de otra clase, `super()` se utiliza para asegurar que todas las clases padre sean inicializadas correctamente. #### Métodos que Vienen por Defecto en Python Todas las clases en Python heredan de la clase base `object`, lo que proporciona ciertos métodos por defecto: * `__init__(self)`: Constructor de la clase, se llama al crear una nueva instancia y se utiliza para inicializar atributos. * `__str__(self)`: Devuelve una representación en cadena del objeto, usada por `print()` y `str()`. * `__repr__(self)`: Devuelve una representación “oficial” del objeto, usada por `repr()` y diseñada para ser precisa y útil para recrear el objeto. ### Importancia de Aprender estos Conceptos * **Extender Funcionalidades**: `super()` permite extender funcionalidades de la superclase sin duplicar código. * **Inicialización Correcta**: El uso adecuado de constructores garantiza que todos los atributos sean inicializados correctamente. * **Personalizar Representaciones**: Métodos como `__str__` y `__repr__` permiten personalizar la representación de los objetos, facilitando la depuración y manejo de datos. * **Comparar y Ordenar Objetos**: Métodos como `__eq__`, `__lt__`, etc., permiten definir cómo se comparan y ordenan los objetos, esencial para muchas operaciones de datos.
Estoy muy atorado con esto, pude hacer los ejercicios, pero me cuesta mucho entenderlo y poder aplicarlo en otros casos más complejos.
Esta parte necesita ser corregida, tiene muchas faltas ortograficas, por ejemplo en este parrafo ( al usar herencia vimos el método **init**() que es le cosntructor, el mismo es llamado automáticamente cuando se crea una nueva instancia de una clase y se utiliza para inicializar los atributos del objeto.)
me sorprendio lo de los metodos `__str__ y __repr__` eso faciliita mucho las cosas
La Programación Orientada a Objetos (POO) en Python es un paradigma de programación que organiza el código en clases y objetos. Este enfoque permite modelar el mundo real más fácilmente y escribir programas más modulares, reutilizables y escalables. Las clases son plantillas que permiten crear objetos, que son instancias de esas clases. Las clases pueden tener atributos (variables) y métodos (funciones.
Veo que este curso está un poco loco. Esta clase no aparece en el indice de clases.
Muchas gracias por tan buena explicación , los ejercicios todo estuvo muy entendible . Súper. Ahora vamos a la práctica.
De acuerdo con lo aprendido, es una forma digamos correcta de escribir código, siempre estableciendo las superclases que definen atributos y métodos mas generales, y utilizar super para agregar atributos y métodos de esas clases padre siempre que existan. Se ahorra tiempo y lineas de código. Muy buena esta clase.
Tengo una duda, super(), llama métodos y atributos o solo métodos ? En los ejercicios entendí que llamaba a los atributos pero acá dice que es a los métodos. Gracias
Muchas gracias profe, por tu trabajo, excelente. Este aspecto de programación me llama mucho la atención, es de ciudado, pero hasta el momento con los ejemplos que has dado, me ha gustado mucho tu estilo.
**\_\_init\_\_** Inicializa los atributos del objeto. Se puede reutilizar con super() para inicializar también los atributos de la clase base. **\_\_str\_\_** Define una representación amigable del objeto (lo que aparece cuando lo imprimes). **\_\_repr\_\_** Define una representación más técnica del objeto, útil para depuración. **super()** Te permite reutilizar los métodos de la clase base, como **\_\_init\_\_, \_\_str\_\_, y \_\_repr\_\_,** haciendo que las clases hijas hereden y agreguen más comportamientos si es necesario.
Me parece que esta mal ejemplificado, una persona no tiene direccion, no esta dentro de sus caracteristicas como podria ser **Altura, Color de Pelo, Color de Ojos, Edad**, una persona si puede o no tener una direccion todo depende de las condiciones de esa persona ya que una **dirección** es una condición o estado externo que puede cambiar y no es una característica intrínseca. Asi que para mayor referencia con atributos y metodos: regresemos al ejemplo de los Coches **Atributo:** magina una clase **"Coche"**. Algunos atributos podrían ser **"color"**, **"marca"** y **"kilometraje"**. ### **Método** Un método es una función definida dentro de una clase que describe el comportamiento de un objeto. Los métodos realizan acciones o cambian el estado de un objeto. **Ejemplo:** Siguiendo con la clase **"Coche"**, un método podría ser **"arrancar"** o **"conducir"**.
Holaa 'Carli' Muchas Gracias pro la Explicacion Extra,\n Fue muy Bueno para entender lo que se ha dado hasta ahora en texto, Yo realmente l'Aprecio ,\n ahora si que entiendo mejor OOP en Python. \n
Excelente resumen! Tengo la memoria mas fresca sobre el tema, pero como siempre, es bueno indagar y recordar de vez en cuando para dominar el tema.
Como en este ejemplo que hemos definido el comportamiento de métodos como `__str__` y `__repr__` podemos hacer sobrecarga de operadores que es cuando definimos el comportamiento de operadores estándar. Por ejemplo si definimos un método `__add__` Python usa ese método para ejecutar una operación como: `person3 = person1 + person2` En esta tabla vemos algunos de los operadores que se pueden sobre-escribir ![](https://static.platzi.com/media/user_upload/image-3d641f08-675f-46c5-bd2c-585683d48fb0.jpg)
Está debió de ser la primera clase de POO, yo a veces confundo que es un argumento con objetos o que, si un objeto es un método, se me olvida que un método es una función, también no te queda claro porque usan self, etc. tengo una pregunta, Si por ejemplo la super clase Person tuviera no se 10 argumentos, por ejemplo, nombre, edad, teléfono, dirección correo etc. peor en la clase hija Student(Person) solo quiero llamar 2 o 3 atributos de lso 10 que tiene ¿Se puede? lo intenté haciendo, quitando age pero me marca un error TypeError ![](https://static.platzi.com/media/user_upload/image-b7c8ff0e-f614-4cd6-b18f-44744cbd2526.jpg)
### Hice uso de chat gpt y me parecio un mas entendible Qué es `super()`? `super()` es una función que te permite acceder a métodos y propiedades de una clase base desde una clase derivada. Esto es útil cuando quieres extender o modificar la funcionalidad de un método de la clase base en la clase derivada, sin necesidad de reescribir todo el código.