code: def lazyproperty(func: Callable) -> property:
      """Decorator to create lazy-loading properties. Creates a class attribute with the same name
      prefixed with an underscore and sets it to ``None``. When accessing the property, if the
      underscored attribute is ``None``, executes the decorated function and stores the result.
      Returns the underscored attribute.
  
      Args:
          func (Callable): Function to decorate.
  
      Returns:
          property: Decorated ``fn`` turned into a property.
      """
  
      @wraps(func)
      def lazy_(self: Any, *args: Any, **kwargs: Any) -> Any:
          field = f"_{func.__name__}"
          if getattr(self, field, None) is None:
              setattr(self, field, func(self, *args, **kwargs))
          return getattr(self, field)
  
      return property(lazy_)
  
imports: from typing import Any, Callable, Type
  from functools import wraps
label_desc: Use image node_id 1 for calling a global function with example usage: lazyproperty(func) and returns: property, getattr