'Return string: the formatted row.
This is the default formatter for rows.
Override this to get different formatting.
A row formatter must accept as arguments
a row (self) and an output format,
one of (\'html\', \'txt\', \'csv\', \'latex\').'

def as_string(self, output_format='txt', **fmt_dict):

    fmt = self._get_fmt(output_format, **fmt_dict)
    try:
        colwidths = self.table.get_colwidths(output_format, **fmt)
    except AttributeError:
        colwidths = fmt.get('colwidths')
    if (colwidths is None):
        colwidths = ((0,) * len(self))
    colsep = fmt['colsep']
    row_pre = fmt.get('row_pre', '')
    row_post = fmt.get('row_post', '')
    formatted_cells = []
    for (cell, width) in zip(self, colwidths):
        content = cell.format(width, output_format=output_format, **fmt)
        formatted_cells.append(content)
    formatted_row = ((row_pre + colsep.join(formatted_cells)) + row_post)
    formatted_row = self._decorate_below(formatted_row, output_format, **fmt)
    return formatted_row
