La función delattr()
en Python se utiliza para eliminar un atributo de un objeto. Es útil cuando necesitas remover dinámicamente un atributo de una instancia de una clase.
La función delattr()
toma dos argumentos:
1. Objeto: El objeto del cual deseas eliminar el atributo.
2. Nombre del atributo: Una cadena que representa el nombre del atributo que se va a eliminar.
Es equivalente a usar del
para eliminar un atributo, pero se hace mediante una función, lo que permite una eliminación más dinámica en tiempo de ejecución.
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
persona = Persona('Ana', 30)
# Eliminar el atributo 'edad'
delattr(persona, 'edad')
print(hasattr(persona, 'edad')) # False, el atributo ya no existe
En este ejemplo, delattr()
elimina el atributo edad
de la instancia persona
.
atributo_a_eliminar = 'nombre'
delattr(persona, atributo_a_eliminar)
print(hasattr(persona, 'nombre')) # False, el atributo fue eliminado
del
Puedes usar del
directamente para eliminar un atributo, pero delattr()
es más flexible cuando el nombre del atributo no es conocido de antemano.
# Usando 'del'
del persona.edad
1. Eliminar múltiples atributos:
class Coche:
def __init__(self, marca, modelo, año):
self.marca = marca
self.modelo = modelo
self.año = año
coche = Coche('Toyota', 'Corolla', 2020)
# Eliminar atributos dinámicamente
for attr in ['marca', 'modelo']:
delattr(coche, attr)
2. Comprobar antes de eliminar:
Es buena práctica verificar si el atributo existe antes de intentar eliminarlo.
if hasattr(persona, 'nombre'):
delattr(persona, 'nombre')
Puedes consultar más sobre delattr()
en la documentación oficial de Python.
Jorge García
Fullstack developer