La palabra clave self en Python
Este tutorial explicará el propósito y el uso de la palabra clave self
en Python. En la programación orientada a objetos, tenemos clases y cada clase tiene varios atributos y métodos. Siempre que se crea un objeto o instancia de una clase, se llama al constructor (método __init__()
en Python) para inicializar los atributos de la instancia.
Al crear una instancia de una clase, necesitamos diferenciar o especificar los atributos de la instancia de los argumentos y otras variables. Y ahí es donde necesitamos la palabra clave self
para especificar que estamos pasando el valor a los atributos de la instancia y no a la variable o argumento local con el mismo nombre.
Supongamos que para una clase car
pasamos el argumento color
al método __init__()
para inicializar el atributo color
de la clase car
, especificaremos el atributo color
de la instancia como self.color
, que muestra que la clase car
tiene un atributo color
y le asignamos el valor a ese atributo.
De manera similar, también podemos llamar a los métodos de instancia de la clase usando la palabra clave self
como el método self.start()
de la clase car
. En resumen, podemos decir que la palabra clave self
permite al usuario especificar y acceder a los atributos y métodos de una instancia de la clase.
Códigos de uso y ejemplo de la palabra clave self
en Python
Ahora, veamos cómo se usa la palabra clave self
en Python para especificar los métodos y atributos de una instancia a través del código de ejemplo.
El primer código de ejemplo que se muestra a continuación demuestra cómo se usa la palabra clave self
en el método __init__()
para inicializar los atributos de la instancia que se está inicializando. No necesitamos declarar o crear variables antes de inicializarlas o asignarles valores para que podamos inicializar los atributos de la instancia de la siguiente manera:
class car:
def __init__(self, model, color):
self.model = model
self.color = color
mycar = car("model XYZ", "red")
print(mycar.model)
print(mycar.color)
Producción :
model XYZ
red
Como se puede ver arriba, el método __init__()
se llama automáticamente al crear una nueva instancia de la clase, y sus atributos se inicializan. El self
debe ser el parámetro del método para acceder a los métodos y atributos de las instancias.
El siguiente código de ejemplo demuestra cómo usar la palabra clave self
para llamar a los métodos de instancia/clase dentro de otros métodos de clase en Python.
class car:
def __init__(self, model, color):
self.model = model
self.color = color
self.start()
def start(self):
print(self.model + ", has started!")
mycar = car("model XYZ", "red")
Producción :
model XYZ, has started!
Como en el código de ejemplo anterior, podemos llamar a métodos de clase usando la palabra clave self
y acceder a los atributos en cualquier método de clase pasando la instancia de la clase como parámetro self
.