La palabra clave self en Python

Muhammad Waiz Khan 18 julio 2021
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.

Artículo relacionado - Python Keyword