code: def joinpath(cls, first, *others):
          
          if not isinstance(first, cls):
              first = cls(first)
          return first._next_class(first.module.join(first, *others))
docs: Join first to zero or more :class:`Path` components,
          adding a separator character (:samp:`{first}.module.sep`)
          if needed.  Returns a new instance of
          :samp:`{first}._next_class`.
  
          .. seealso:: :func:`os.path.join`