docs: def Draw(self, *args, **kwargs):
          """
          Parameters
          ----------
          args : positional arguments
              Positional arguments are passed directly to ROOT's Draw
          kwargs : keyword arguments
              If keyword arguments are present, then a clone is drawn instead
              with DrawCopy, where the name, title, and style attributes are
              taken from ``kwargs``.
  
          Returns
          -------
          If ``kwargs`` is not empty and a clone is drawn, then the clone is
          returned, otherwise None is returned.
          """
          if kwargs:
              return self.DrawCopy(*args, **kwargs)
  
          pad = ROOT.gPad
          own_pad = False
          if not pad:
              # avoid circular import by delaying import until needed here
              from .canvas import Canvas
              pad = Canvas()
              own_pad = True
          if self.visible:
              if self.drawstyle:
                  self.__class__.__bases__[-1].Draw(self,
                      " ".join((self.drawstyle, ) + args))
              else:
                  self.__class__.__bases__[-1].Draw(self, " ".join(args))
              pad.Modified()
              pad.Update()
          if own_pad:
              keepalive(self, pad)