Superclase
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.
12345678910111213141516171819class 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)
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ónsuper()
llama a métodos de la clase Parent y utiliza atributos Parent. Esto nos permite extender métodos padre.
Un ejemplo más:
123456789101112class User: role = "User" class Admin(User): role = "Admin" def info(self): print(self.role) print(super().role) admin = Admin() admin.info()
Nota
La función
super()
es utilizada por frameworks populares como Django.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.78
Superclase
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.
12345678910111213141516171819class 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)
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ónsuper()
llama a métodos de la clase Parent y utiliza atributos Parent. Esto nos permite extender métodos padre.
Un ejemplo más:
123456789101112class User: role = "User" class Admin(User): role = "Admin" def info(self): print(self.role) print(super().role) admin = Admin() admin.info()
Nota
La función
super()
es utilizada por frameworks populares como Django.
¡Gracias por tus comentarios!