En nuestro tutorial anterior, aprendimos acerca del comando del sistema de Python python system command. En este tutorial, discutiremos la función getattr() de Python.
Función getattr() de Python
La función getattr() de Python se utiliza para obtener el valor de un atributo de un objeto y, si no se encuentra ningún atributo de ese objeto, se devuelve el valor predeterminado. Básicamente, devolver el valor predeterminado es la razón principal por la que podrías necesitar usar la función getattr() de Python. Entonces, antes de comenzar el tutorial, veamos la sintaxis básica de la función getattr() de Python.
getattr(object_name, attribute_name[, default_value])
Ejemplo de getattr() en Python
En esta sección, aprenderemos cómo acceder a los valores de los atributos de un objeto utilizando la función getattr()
. Supongamos que estamos escribiendo una clase llamada Estudiante
. Los atributos básicos de la clase Estudiante son student_id
y student_name
. Ahora crearemos un objeto de la clase Estudiante y accederemos a su atributo.
class Student:
student_id=""
student_name=""
# constructor inicial para establecer los valores
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# obtener valores de atributos usando la función getattr()
print('\ngetattr : name of the student is =', getattr(student, "student_name"))
# pero podrías acceder de esta manera
print('traditional: name of the student is =', student.student_name)
Así que, la salida será así
Valor predeterminado de Python getattr()
En esta sección, utilizaremos la opción de valor predeterminado de python getattr(). Si desea acceder a cualquier atributo que no pertenezca al objeto, entonces puede usar la opción de valor predeterminado de getattr(). Por ejemplo, si el atributo student_cgpa
no está presente para el estudiante, se mostrará un valor predeterminado. En el siguiente ejemplo veremos un ejemplo de valor predeterminado. También aprenderemos qué sucede si el atributo no está presente y no estamos utilizando la opción de valor predeterminado.
class Student:
student_id=""
student_name=""
# constructor inicial para establecer los valores
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# usando la opción de valor predeterminado
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# sin usar el valor predeterminado
try:
print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
print("Attribute is not found :(")
Entonces, después de ejecutar el código, obtendrá una salida como esta
Using default value : Cgpa of the student is = 3.0
Attribute is not found :(
Observe que se produce un AttributeError
cuando no se proporciona el valor predeterminado al llamar a la función getattr().
Razón para usar la función Python getattr()
La razón principal para usar `getattr()` en Python es que podemos obtener el valor utilizando el nombre del atributo como una cadena. Así que puedes ingresar manualmente el nombre del atributo en tu programa desde la consola. Además, si no se encuentra un atributo, puedes establecer algún valor predeterminado, lo que nos permite completar algunos de nuestros datos incompletos. También, si tu clase `Student` está en progreso, podemos utilizar la función `getattr()` para completar otro código. Una vez que la clase `Student` tenga este atributo, lo recogerá automáticamente y no usará el valor predeterminado. Entonces, eso es todo acerca de la función `getattr()` en Python. Si tienes alguna pregunta al respecto, por favor usa el cuadro de comentarios a continuación. Referencia: Documentación Oficial
Source:
https://www.digitalocean.com/community/tutorials/python-getattr