Menu
CoddyTech

El parámetro self

Parte de la sección Programación orientada a objetos del Journey de Python de Coddy. Lección 4 de 64.

El parámetro self hace referencia a la instancia de una clase dentro de los métodos. Te permite acceder a los atributos del objeto actual y modificarlos.

Aquí tienes un ejemplo de una clase con métodos que usan self:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

El parámetro self siempre debe ser el primer parámetro en las definiciones de métodos. Le indica al método qué objeto específico se está usando.

Crea un objeto coche y añade atributos:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

Ahora llama a los métodos:

my_car.honk()
my_car.describe()

Salida:

Beep beep!
I am a Red Sedan

Observa que al llamar a my_car.describe(), no pasas nada para self: Python pasa automáticamente my_car como parámetro self.

Esto es lo que ocurre entre bastidores:

# Cuando escribes esto:
my_car.describe()

# Python en realidad hace esto:
Car.describe(my_car)

El parámetro self permite que cada objeto acceda a sus propios datos. Sin self, los métodos no sabrían qué atributos del objeto usar.

Punto clave: Incluye siempre self como primer parámetro en las definiciones de métodos, pero nunca lo pases al llamar a los métodos: Python se encarga de esto automáticamente.

challenge icon

Desafío

Fácil

Completa la clase Car en car.py agregando un método llamado display_info que use el parámetro self para imprimir el año, la marca y el modelo del automóvil con el formato:

"This car is a [year] [make] [model]".

  • car.py: Contiene la definición de la clase Car, donde agregarás el método display_info
  • driver.py: Archivo de ejecución principal que importa y usa la clase Car

El archivo driver.py importará tu clase Car y creará instancias para probar tu implementación. Asegúrate de que tu método funcione correctamente cuando se llame desde el archivo controlador.

Pruébalo tú mismo

from car import Car

# Prueba tu código
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # Debería imprimir: This car is a 2020 Toyota Corolla
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación orientada a objetos

Practica por tu cuenta: Compilador de Python online