Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Superclase | Herencia
Programación Orientada a Objetos en Python a Fondo

bookSuperclase

En Python, una superclase es una clase de la que heredan otras clases. Sirve como clase padre o clase base, proporcionando atributos y métodos que pueden ser heredados y utilizados por sus subclases. Proporcionan una forma de definir funcionalidades y características comunes que pueden ser compartidas entre múltiples clases relacionadas.

La función super() en Python se utiliza para acceder e invocar métodos o atributos de una superclase dentro de una subclase. Proporciona una forma conveniente de delegar o llamar a la implementación de un método de la superclase. Mediante el uso de super(), puede llamar a un método definido en la clase padre, incluso si el método ha sido sobrescrito en la clase hija. Esto permite la reutilización de código y facilita la extensión o personalización del comportamiento de la clase padre.

La función super() se utiliza normalmente dentro de una subclase para llamar a los métodos de la clase padre. Toma dos argumentos: la propia subclase (normalmente self) y la instancia de la subclase (opcional). Cuando se llama sin argumentos, super() devuelve un objeto temporal de la superclase. Puede llamar a métodos o acceder a atributos de este objeto utilizando el punto (.). Esto proporciona una manera de anular o extender selectivamente el comportamiento de la clase padre, mientras que todavía se benefician de su funcionalidad existente.

12345678910111213141516171819
class User: def __init__(self, username, password): self.username = username self.password = password class NewUser(User): def __init__(self, username, password, name, surname, age): super().__init__(username, password) self.name = name self.surname = surname self.age = age user = NewUser("user123", "secret_password", "John", "Johnson", 24) print(user.username) print(user.password) print(user.name) print(user.surname) print(user.age)
copy

El código proporcionado define dos clases: User y NewUser.

La clase User tiene un método constructor __init__() que toma dos parámetros, username y password. La clase NewUser es una subclase de User y la extiende añadiendo atributos adicionales: nombre, apellidos y edad.

El método __init__() de la clase NewUser toma cinco parámetros: username, password, name, surname, y age. Llama al método __init__() de la clase padre (User) usando super().__init__(username, password) para inicializar los atributos username y password heredados de la clase User. A continuación, establece los atributos name, surname y age utilizando los valores proporcionados.

Nota

Puedes utilizar la función super() para otros métodos y atributos. La función super() llama a métodos de la clase Parent y utiliza atributos Parent. Esto nos permite extender métodos padre.

Un ejemplo más:

123456789101112
class User: role = "User" class Admin(User): role = "Admin" def info(self): print(self.role) print(super().role) admin = Admin() admin.info()
copy

Nota

La función super() es utilizada por frameworks populares como Django.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Pregunte me preguntas sobre este tema

Resumir este capítulo

Mostrar ejemplos del mundo real

Awesome!

Completion rate improved to 2.78

bookSuperclase

Desliza para mostrar el menú

En Python, una superclase es una clase de la que heredan otras clases. Sirve como clase padre o clase base, proporcionando atributos y métodos que pueden ser heredados y utilizados por sus subclases. Proporcionan una forma de definir funcionalidades y características comunes que pueden ser compartidas entre múltiples clases relacionadas.

La función super() en Python se utiliza para acceder e invocar métodos o atributos de una superclase dentro de una subclase. Proporciona una forma conveniente de delegar o llamar a la implementación de un método de la superclase. Mediante el uso de super(), puede llamar a un método definido en la clase padre, incluso si el método ha sido sobrescrito en la clase hija. Esto permite la reutilización de código y facilita la extensión o personalización del comportamiento de la clase padre.

La función super() se utiliza normalmente dentro de una subclase para llamar a los métodos de la clase padre. Toma dos argumentos: la propia subclase (normalmente self) y la instancia de la subclase (opcional). Cuando se llama sin argumentos, super() devuelve un objeto temporal de la superclase. Puede llamar a métodos o acceder a atributos de este objeto utilizando el punto (.). Esto proporciona una manera de anular o extender selectivamente el comportamiento de la clase padre, mientras que todavía se benefician de su funcionalidad existente.

12345678910111213141516171819
class User: def __init__(self, username, password): self.username = username self.password = password class NewUser(User): def __init__(self, username, password, name, surname, age): super().__init__(username, password) self.name = name self.surname = surname self.age = age user = NewUser("user123", "secret_password", "John", "Johnson", 24) print(user.username) print(user.password) print(user.name) print(user.surname) print(user.age)
copy

El código proporcionado define dos clases: User y NewUser.

La clase User tiene un método constructor __init__() que toma dos parámetros, username y password. La clase NewUser es una subclase de User y la extiende añadiendo atributos adicionales: nombre, apellidos y edad.

El método __init__() de la clase NewUser toma cinco parámetros: username, password, name, surname, y age. Llama al método __init__() de la clase padre (User) usando super().__init__(username, password) para inicializar los atributos username y password heredados de la clase User. A continuación, establece los atributos name, surname y age utilizando los valores proporcionados.

Nota

Puedes utilizar la función super() para otros métodos y atributos. La función super() llama a métodos de la clase Parent y utiliza atributos Parent. Esto nos permite extender métodos padre.

Un ejemplo más:

123456789101112
class User: role = "User" class Admin(User): role = "Admin" def info(self): print(self.role) print(super().role) admin = Admin() admin.info()
copy

Nota

La función super() es utilizada por frameworks populares como Django.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5
some-alt