Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
yo | Conceptos de POO
Programación Orientada a Objetos en Python a Fondo
course content

Contenido del Curso

Programación Orientada a Objetos en Python a Fondo

Programación Orientada a Objetos en Python a Fondo

1. Conceptos de POO
2. Herencia
3. Encapsulamiento
4. Polimorfismo y Abstracción
5. Métodos Mágicos

bookyo

self es el primer argumento en los métodos, cuyo nombre es acordado por los programadores de Python. Cuando una instancia ejecuta un método, automáticamente se pasa a sí misma como primer argumento. Consideremos como ejemplo la clase User que creamos anteriormente:

123456789101112
class User: def __init__(self, name, surname, age): # self=bob, name="Bob", surname="Smith", age=11 self.name = name # bob.name = "Bob" (name argument) self.surname = surname # bob.surname = "Smith" (surname argument) self.age = age # bob.age = 11 (age argument) bob = User("Bob", "Smith", 11) print(bob.name, bob.surname, bob.age)
copy

El método mágico __init__ recibe los argumentos self, name, surname y age. En el ejemplo dado, cuando creamos la instancia bob, estos argumentos se pasan como valores.

Usemos la función print() para examinar los argumentos pasados:

123456789101112131415161718
class User: def __init__(self, name, surname, age): print("===== INIT ARGUMENTS =====") print("self:", self) print("name:", name) print("surname:", surname) print("age:", age) self.name = name self.surname = surname self.age = age bob = User("Bob", "Smith", 11) print("===== GLOBAL =====") print("bob:", bob) print("bob.name:", bob.name) print("bob.surname:", bob.surname) print("bob.age:", bob.age)
copy

En el ejemplo dado, es evidente que la variable global bob y el parámetro self dentro del método __init__ se refieren a la misma instancia. Esto ilustra la convención en Python donde los métodos reciben la instancia como primer argumento, convencionalmente llamado self.

Siguiendo esta convención, los métodos tienen acceso a los atributos de la instancia y pueden realizar operaciones o acceder a valores específicos de esa instancia en particular.

Nota

En Python, el parámetro self sirve como primer argumento en los métodos y representa el objeto instancia que llama al método. Por convención, se utiliza el nombre self, aunque puede ser cualquier nombre de variable válido. Este parámetro proporciona acceso a los atributos y métodos de la instancia, permitiendo al método interactuar y manipular sus propios datos.

Para una mejor comprensión, vamos a crear una función regular y llamarla init, que realizará las mismas acciones pero será llamada por separado.

1234567891011
class User: pass def init(instance, arg1, arg2, arg3): instance.name = arg1 instance.surname = arg2 instance.age = arg3 bob = User() init(bob, "Bob", "Smith", 11) print(bob.name, bob.surname, bob.age)
copy

La función init toma el primer argumento como instancia y luego le asigna los argumentos recibidos. Del mismo modo, __init__ funciona al crear una clase, y self es un elemento necesario para crear diferentes métodos, que discutiremos más adelante.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 6
some-alt