La programación orientada a objetos (POO) en Python, se encuentra totalmente soportada y se utiliza ampliamente en el desarrollo de aplicaciones. Aquí te contamos a detalle más acerca de este paradigma:
class, seguida del nombre de la clase:class MiClase: # Definición de propiedades y métodos de la clase
Para crear un objeto a partir de una clase, se utiliza la siguiente sintaxis:
objeto = MiClase()
objeto.atributo:class MiClase: variable_de_clase = "Compartida por todos los objetos" def __init__(self): self.variable_de_instancia = "Propia de cada objeto" objeto = MiClase() print(objeto.variable_de_instancia) # Output: "Propia de cada objeto" print(objeto.variable_de_clase) # Output: "Compartida por todos los objetos"
self, que hace referencia al objeto en sí mismo. A través de self, se puede acceder a los atributos y otros métodos de la clase:class MiClase: def mi_metodo(self): print("Hola desde el método") objeto = MiClase() objeto.mi_metodo() # Output: "Hola desde el método"
__init__() y se utiliza para inicializar los atributos de la clase. Los parámetros que recibe el constructor son aquellos que se deben pasar al crear un objeto:class MiClase: def __init__(self, parametro): self.atributo = parametro objeto = MiClase("Valor del atributo") print(objeto.atributo) # Output: "Valor del atributo"
class seguida del nombre de la subclase y entre paréntesis el nombre de la superclase:class ClaseBase: # Definición de la clase base class SubClase(ClaseBase): # Definición de la subclase
class Animal: def sonido(self): pass class Perro(Animal): def sonido(self): print("Guau!") class Gato(Animal): def sonido(self): print("Miau!") def hacer_sonar(animal): animal.sonido() perro = Perro() gato = Gato() hacer_sonar(perro) # Output: "Guau!" hacer_sonar(gato) # Output: "Miau!"
La programación orientada a objetos en Python se basa en la creación de clases y objetos, donde las clases son plantillas que definen atributos y métodos, y los objetos son instancias de esas clases.
Jhon Freddy Tavera Blandon
EstudianteBrayan Estiben Rodallega Saavedra
EstudianteEduardo Peña Ramos
EstudianteDiego Alessandro Galvez Rodriguez
Estudianteiecgerman .
EstudianteWaldir Zapata Garcia
EstudianteLuis Kennedy Saavedra Fuentes
EstudianteWaldir Zapata Garcia
Estudianteiecgerman .
EstudianteFacundo Rios
Estudianteiecgerman .
EstudianteSupongamos que queremos modelar una entidad "Persona" en un programa. Podemos crear una clase llamada "Persona" que defina los atributos como nombre, edad y género, y los métodos para interactuar con la persona.
class Persona: def __init__(self, nombre, edad, genero): self.nombre = nombre self.edad = edad self.genero = genero def saludar(self): print(f"Hola, mi nombre es {self.nombre}.") def cumplir_anios(self): self.edad += 1 # Creamos objetos de la clase Persona persona1 = Persona("Juan", 30, "Masculino") persona2 = Persona("María", 25, "Femenino") # Llamamos a los métodos de los objetos persona1.saludar() # Salida: Hola, mi nombre es Juan. persona2.saludar() # Salida: Hola, mi nombre es María. print(persona1.edad) # Salida: 30 persona1.cumplir_anios() print(persona1.edad) # Salida: 31
En este ejemplo, creamos una clase "Persona" con los atributos "nombre", "edad" y "género", y dos métodos "saludar" y "cumplir_anios". Luego creamos dos objetos de la clase "Persona" (persona1 y persona2) y llamamos a sus métodos y accedemos a sus atributos.
La Programación Orientada a Objetos nos permite organizar nuestro código de manera más estructurada y modular, facilitando el mantenimiento y reutilización del código.
Puedes pensarlo de la siguiente manera...
Los objetos son la creación o instancia a partir de una clase; por lo tanto, todos los objetos creados a partir de dicha clase compartirán los mismos atributos y métodos. Además, cada objeto puede ser personalizado con más atributos y métodos propios de dicho objeto.
Jejeje muy gráfico, gracias.
En esta clase se explica la importancia de la programación orientada a objetos. Curso de POO: Clase 2 7 minutos bien invertidos.
me estoy volviendo loco 😜
un ejemplo:
# Definimos una clase padre class Animal: def __init__(self, especie, edad): self.especie = especie self.edad = edad # Método genérico pero con implementación particular def hablar(self): # Método vacío pass # Método genérico pero con implementación particular def moverse(self): # Método vacío pass # Método genérico con la misma implementación def describeme(self): print("Soy un Animal del tipo", type(self).__name__) # Creamos una clase hija que hereda de la padre class Perro(Animal): def hablar(self): print("Guau!") def moverse(self): print("Caminando con 4 patas") class Vaca(Animal): def hablar(self): print("Muuu!") def moverse(self): print("Caminando con 4 patas") class Abeja(Animal): def hablar(self): print("Bzzzz!") def moverse(self): print("Volando") # Nuevo método def picar(self): print("Picar!") print(Perro.__bases__) # (<class '__main__.Animal'>,) print(Animal.__subclasses__()) #[<class '__main__.Perro'>] mi_perro = Perro('mamífero', 10) mi_perro.describeme() # Soy un Animal del tipo Perro mi_vaca = Vaca('mamífero', 23) mi_abeja = Abeja('insecto', 1) mi_perro.hablar() # Guau! mi_vaca.hablar() # Muuu! mi_vaca.describeme() # Soy un Animal del tipo Vaca mi_abeja.describeme() # Soy un Animal del tipo Abeja mi_abeja.picar() # Picar!
Mas sobre clases y objectos)
Junto con la herencia, la cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento son otros de los conceptos claves para entender la programación orientada a objetos.
youtube_com/watch?v=HtKqSJX7VoM&t=7861s
Gente este video de Soy Dalto me ha ayudado mucho a entender lo de POO, herencias, Abstracción y hasta ahí voy, el video dura mucho son 4 hrs, pero enserio que no encontré nada mejor para los que estamos en 0 en POO
Por recomendaciones de otra persona me dijieron que nunca mire soy dalto,me comentaron que usa malas practicas entre otras cosas pero no se mi bro
Pues yo la verdad ahorita estoy terminado MRO (método de resolución de orden) de quién hereda a otras clases y pffff explicado con peras y manzanas, y se pasó con el tip de print(clase.mro()) que te dice la secuencia de que va heredando la clase que preguntaste.
pero independiente mente de esto, yo me dedico un poco a hacer páginas web estaticas y sencillas (no es mi fuerte pero es un extra) y una vez un video de Dalto me saco de un apuro porque me urgía conectar un formulario de un cliente con una base de datos sql de lo cual se NADA, por tal motivo no me puedo quejar de soy dalto, la verdad me vale si es dalto, si es falcon master, el punto es que el video que saco a mitad del reto de platzi de 21 días me ha estado ayudando demasiado, hace rato vi la parte de polimorfismo, encapsulamiento, getters, setters, decoradores, etc. y pff ya solo me falta hacer los ejercios y seguir prácticando, te lo dice una persona que no sabe nada de programación, digo un poco de html y css (super básico) pero eso no es programación, la verdad no recomiendo el reto de 21 dás de python si empezaste en cero como yo, a menos que, no trabajes y no estes haciendo nada y tus papis te mantengan porque si no no hay mucho tiempo para poder estudiar, lo que recomendaria seria ya tener unos 2 o 3 cursos basicos e intermedios para que no batalles como yo he estado batallando todos estos dias desde mediados de julio, no sabes como anelo que ya sea 17 de Ago jajaja pero me doy por bien servido con lo mucho que he aprendido en el reto y parte de eso y vaya que una buena parte importante que es la POO es gracias al video de Dalto, no creas que le estoy hechando a Platzi, no claro que no, aparte Platzi tiene tanto buenos como malos maestros y no por eso dalto es mejor que los que yo considero buenos.