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étodoacelerar()
, y ese argumento se nombra por convención comoself
.
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 atributovelocidad
, dentro de un método comoacelerar()
, usasself.velocidad
para acceder o modificar la velocidad del coche específico que llamó al método. Sinself
, el método no sabría a qué variablevelocidad
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ón | Propósito |
Puntero | Hace referencia al objeto que está llamando al método. |
Acceso | Permite a los métodos leer y modificar las variables internas (atributos) de ese objeto. |
Distinción | Separa 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