Atributos dinámicos en Python

Los atributos dinámicos en Python son terminologías para atributos que se definen en tiempo de ejecución , después de crear los objetos o instancias. En Python llamamos a todas las funciones, métodos también como un objeto. Entonces puede definir un atributo de instancia dinámica para casi cualquier cosa en Python. Considere el siguiente ejemplo para una mejor comprensión sobre el tema.

Ejemplo 1:

class GFG:
    None
      
def value():
    return 10
  
# Driver Code
g = GFG()
  
# Dynamic attribute of a
# class object
g.d1 = value
  
# Dynamic attribute of a 
# function
value.d1 = "Geeks"
  
print(value.d1)
print(g.d1() == value())

Producción:

Geeks
True

Ahora, el programa anterior parece ser confuso, pero tratemos de entenderlo. En primer lugar, veamos los objetos, g y valor (las funciones también se consideran objetos en Python) son los dos objetos. Aquí el atributo dinámico para ambos objetos es «d1». Esto se define en tiempo de ejecución y no en tiempo de compilación como atributos estáticos.

Nota: La clase “GFG” y todos los demás objetos o instancias de esta clase no conocen el atributo “d1”. Solo se define para la instancia “g”.

Ejemplo 2:

class GFG:
      
    employee = True
  
# Driver Code
e1 = GFG()
e2 = GFG()
  
e1.employee = False
e2.name = "Nikhil"
  
print(e1.employee)
print(e2.employee)
print(e2.name)
  
# this will raise an error 
# as name is a dynamic attribute
# created only for the e2 object
print(e1.name)

Producción:

False
True
Nikhil
Traceback (most recent call last):
  File "/home/fbcfcf668619b24bb8ace68e3c400bc6.py", line 19, in 
    print(e1.name)
AttributeError: 'GFG' object has no attribute 'name'

Publicación traducida automáticamente

Artículo escrito por rutujakawade24 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 *