Método Python hasattr()

La función Python hasattr() es una función de utilidad incorporada, que se utiliza para verificar si un objeto tiene el atributo con nombre dado y devolver verdadero si está presente, de lo contrario, falso. En este artículo veremos cómo verificar si un objeto tiene un atributo en Python .

Sintaxis de la función hasattr()

Sintaxis: hasattr(obj, clave)

Parámetros: 

  • obj : El objeto cuyo atributo debe verificarse.
  • clave: atributo que debe verificarse.

Devuelve: Devuelve Verdadero, si el atributo está presente, de lo contrario devuelve Falso. 

Ejemplo 1: ejemplo de la función Python hasattr()

Aquí comprobaremos si un objeto tiene un atributo , para encontrar los atributos del objeto en python hemos demostrado el siguiente código.

Python3

# declaring class
class GfG:
    name = "GeeksforGeeks"
    age = 24
 
 
# initializing object
obj = GfG()
 
# using hasattr() to check name
print("Does name exist ? " + str(hasattr(obj, 'name')))
 
# using hasattr() to check motto
print("Does motto exist ? " + str(hasattr(obj, 'motto')))

Producción: 

Does name exist ? True
Does motto exist ? False

Ejemplo 2: análisis de rendimiento entre el método hasattr() y la declaración de prueba

Estas son las formas simples de verificar si un objeto tiene un atributo en Python o no usa el análisis de rendimiento entre la función hasattr() y la declaración de prueba.

Python3

import time
 
# declaring class
class GfG:
    name = "GeeksforGeeks"
    age = 24
 
# initializing object
obj = GfG()
 
# use of hasattr to check motto
start_hasattr = time.time()
if(hasattr(obj, 'motto')):
    print("Motto is there")
else:
    print("No Motto")
 
print("Time to execute hasattr : " + str(time.time() - start_hasattr))
 
# use of try/except to check motto
start_try = time.time()
try:
    print(obj.motto)
    print("Motto is there")
except AttributeError:
    print("No Motto")
print("Time to execute try : " + str(time.time() - start_try))

Producción: 

No Motto
Time to execute hasattr : 5.245208740234375e-06
No Motto
Time to execute try : 2.6226043701171875e-06

Resultado: Try/except convencional toma menos tiempo que hasattr(), pero para la legibilidad del código, hasattr() siempre es una mejor opción.

Aplicaciones: Esta función se puede utilizar para comprobar las claves para evitar errores innecesarios en caso de acceder a claves ausentes. El enstringmiento de hasattr() se usa a veces para evitar la entrada de un atributo asociado si el otro no está presente.

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *