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
Genial!
Completion tasa mejorada a 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!