'Printing method.'

def __str__(self, printer=None):

    ar = self.args
    if (len(ar) == 0):
        return str(0)
    ol = []
    for (i, v) in enumerate(ar):
        if (ar[i][0] == 1):
            ol.append((((('    +    (' + str(ar[i][1])) + '|') + str(ar[i][2])) + ')'))
        elif (ar[i][0] == (-1)):
            ol.append((((('    -    (' + str(ar[i][1])) + '|') + str(ar[i][2])) + ')'))
        elif (ar[i][0] != 0):
            arg_str = VectorStrPrinter().doprint(ar[i][0])
            if isinstance(ar[i][0], Add):
                arg_str = ('(%s)' % arg_str)
            if (arg_str[0] == '-'):
                arg_str = arg_str[1:]
                str_start = '    -    '
            else:
                str_start = '    +    '
            ol.append(((((((str_start + arg_str) + '*(') + str(ar[i][1])) + '|') + str(ar[i][2])) + ')'))
    outstr = ''.join(ol)
    if outstr.startswith('    +    '):
        outstr = outstr[3:]
    elif outstr.startswith('    '):
        outstr = outstr[1:]
    return outstr
