Agregar atributo a objeto en Python
Presentaremos cómo agregar un atributo a un objeto en Python. También presentaremos cómo podemos cambiar los atributos de un objeto en Python con ejemplos.
Agregar atributo a objeto en Python
En Python, trabajamos con objetos de vez en cuando porque Python es un lenguaje orientado a objetos. Los objetos hacen que nuestra codificación sea reutilizable y fácil de implementar estructuras complejas.
La parte principal de los objetos son sus atributos. Los atributos definen cuáles son las propiedades de un determinado objeto.
Mientras trabajamos con objetos, puede haber muchas situaciones en las que necesitemos agregar un nuevo atributo a un objeto en medio del programa.
Python proporciona una función setattr()
que puede establecer fácilmente el nuevo atributo de un objeto. Esta función puede incluso reemplazar el valor del atributo.
Es una función con la ayuda de la cual podemos asignar el valor de los atributos del objeto.
Este método nos proporcionará muchas formas de asignar valores a las variables mediante ciertos constructores y funciones de objetos. Al usar esta función, también podremos tener otras formas sustitutivas de asignar valor.
Ahora, analicemos la estructura de esta función setattr()
. La estructura que construye un setattr()
se muestra a continuación.
# python
setattr(object, name, value)
Como puede ver en la sintaxis de esta función, pasamos tres argumentos a la función y luego nos permitirá establecer los atributos de un objeto.
Hay tres parámetros que se expresan como:
Objeto
: pasaremos el nombre del objeto que creamos y para el que queremos establecer atributos.Nombre
- Será el nombre del atributo de ese objeto al que queremos asignar valor.Valor
: aquí pasaremos el valor del atributo.
Veamos un ejemplo en el que crearemos una clase de estudiantes. Crearemos un nuevo estudiante y le asignaremos algunos atributos, como se muestra a continuación.
# python
class Students:
name = "Rana Hasnain"
roll_no = "BC140402269"
cgpa = 3.5
new_student = Students()
setattr(new_student, "name", "James Bond")
setattr(new_student, "roll_no", "007")
setattr(new_student, "cgpa", 4)
print("New Student Name:", new_student.name)
print("New Student Roll #:", new_student.roll_no)
print("New Student Cgpa:", new_student.cgpa)
Producción:
Como puede ver en el ejemplo anterior, fue bastante fácil establecer los atributos del objeto que creamos. Ahora, hablemos de un escenario diferente.
Supongamos que tenemos un nuevo objeto y queremos establecer un atributo que falta en la clase.
En algunos casos, no hay atributos o no se crean todos los atributos en una clase. Cuando esto sucede, asignamos un nuevo atributo y podemos establecer un valor para él.
Pero para que esto suceda, el objeto debe implementar el método __dict__()
. Veamos un ejemplo e intentemos asignar valores a un atributo que no existe.
Usaremos el ejemplo anterior e intentaremos asignar un nuevo atributo, grado
, como se muestra a continuación.
# python
class Students:
name = "Rana Hasnain"
roll_no = "BC140402269"
cgpa = 3.5
new_student = Students()
setattr(new_student, "name", "James Bond")
setattr(new_student, "roll_no", "007")
setattr(new_student, "cgpa", 4)
setattr(new_student, "degree", "BSCS")
print("New Student Name:", new_student.name)
print("New Student Roll #:", new_student.roll_no)
print("New Student Cgpa:", new_student.cgpa)
print("New Student Degree:", new_student.degree)
Producción:
Como puede ver en el ejemplo anterior, esta función también puede crear nuevos atributos que no existen y asignarles valores.
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn