sábado, 18 de octubre de 2025

La importancia de Self en POO

 

self es una convención utilizada en la Programación Orientada a Objetos (POO), especialmente en lenguajes como Python, que se refiere a la instancia (el objeto) sobre la que se está ejecutando un método.


Función y Significado de self

La función principal de self es permitir que los métodos de una clase accedan y manipulen los atributos y otros métodos de ese objeto específico.

1. Referencia a la Instancia Actual (El Objeto)

  • Identidad: Cuando creas un objeto a partir de una clase (una instancia), self actúa como un puntero o una referencia a ese objeto recién creado.

  • Manejo de Métodos: Cada vez que llamas a un método en un objeto (ej: mi_coche.acelerar()), Python pasa automáticamente ese objeto (mi_coche) como el primer argumento al método acelerar(), y ese argumento se nombra por convención como self.

2. Acceso a Atributos de Instancia

La función más crucial de self es distinguir los atributos de la instancia de las variables locales dentro del método.

  • Ejemplo: Si una clase Coche tiene un atributo velocidad, dentro de un método como acelerar(), usas self.velocidad para acceder o modificar la velocidad del coche específico que llamó al método. Sin self, el método no sabría a qué variable velocidad se está refiriendo.

3. Definición del Método Constructor (__init__)

self es fundamental en el método constructor (__init__) de una clase:

  • __init__(self, ...): Este método se llama cuando se crea un nuevo objeto. self es el primer parámetro y se usa para inicializar los atributos de ese nuevo objeto.

En resumen:

FunciónPropósito
PunteroHace referencia al objeto que está llamando al método.
AccesoPermite a los métodos leer y modificar las variables internas (atributos) de ese objeto.
DistinciónSepara las variables locales del método de los atributos de la instancia.

Nota: Aunque el término estándar es self, en la mayoría de los lenguajes POO (como C++ o Java) se utiliza la palabra clave this con la misma función. El uso de self es una fuerte convención, pero no una palabra clave reservada, de Python.

No hay comentarios.:

Publicar un comentario

Entradas recientes

Thinkcspy 7.7 Condicionales encadenados

  7.7.  Condicionales encadenados  Python proporciona una forma alternativa de escribir selecciones anidadas como la que se muestra en la se...

Entradas Populares