La Programación Orientada a Objetos es un paradigma de programación que se basa en el concepto de “objetos”, los cuales representan entidades del mundo real con sus propias características (atributos) y comportamientos (métodos).
En POO, los objetos interactúan entre sí a través de mensajes, lo que permite modelar de manera más natural los sistemas complejos.
Si quieres aprender más sobre programación orientada a objetos, de dejo el enlace al Curso de Programación orientada a objetos.
Definición de una Clase en Python
En Python, las clases se definen con la palabra clave class
seguida del nombre de la clase y dos puntos (:).
Una clase es una plantilla o un “molde” para crear objetos. Define las propiedades y comportamientos que tendrán los objetos que se creen a partir de ella.
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def saludar(self):
print(f"Hola, mi nombre es {self.nombre} y tengo {self.edad} años.")
El método
__init__
es un método especial llamado “constructor”, que se ejecuta automáticamente al crear un nuevo objeto de la clase. Aquí inicializamos los atributosnombre
yedad
.El método
saludar
es un método de instancia que muestra un saludo con el nombre y edad de la persona.
Atributos
Los atributos son variables que pertenecen a un objeto y que representan sus características o propiedades. Pueden ser de cualquier tipo de dato, como números, cadenas, listas, etc. En el ejemplo anterior, nombre
y edad
son atributos del objeto persona
.
Métodos
Los métodos son funciones que pertenecen a un objeto y que pueden operar sobre sus atributos. Pueden realizar operaciones, modificar los valores de los atributos, o interactuar con otros objetos. En el ejemplo, saludar
es un método del objeto persona
.
Creación de instancias
Una instancia es cada uno de los “ejemplares” que creamos a partir de una clase. Cada instancia tendrá sus tiene sus propios valores para los atributos definidos en la clase.
Para crear un objeto a partir de una clase, simplemente se llama al nombre de la clase seguido de paréntesis.
Por ejemplo, una vez que tenemos la clase Persona
, podemos crear instancias de esta clase así,
juan = Persona("Juan", 30)
En este caso, hemos creado un objeto juan
a partir de la clase Persona
, con los valores “Juan” para el atributo nombre
y 30 para el atributo edad
.
Acceso a atributo y métodos
Para acceder tanto a los atributos o métodos de una instancia, simplemente usamos el operador de acceso .
sobre la variable que contiene la instancia.
Por ejemplo así,
juan = Persona("Juan", 30)
ana = Persona("Ana", 25)
juan.edad = 35; # Cambiamos edad de Juan a 35
ana.edad = 28; # Cambiamos edad de ana a 28
juan.saludar() # Salida: Hola, mi nombre es Juan y tengo 35 años.
ana.saludar() # Salida: Hola, mi nombre es Ana y tengo 28 años.