code: def lazy(decorator):
      
      def decorate(fn, *args, **kwargs):
          name = fn.__name__
          parent = decorator(fn, *args, **kwargs)
          #doc = _add_msg(getattr(parent, '__doc__', None), '*@lazy*')
          doc = getattr(parent, '__doc__', None)
          if hasattr(parent, '__set__') or hasattr(parent, '__delete__'):
              return _lazy_data(name, parent, doc)
          else:
              return _lazy_nondata(name, parent, doc)
      return decorate
docs: A descriptor modifier which caches the result of __get__.