'Applies an \'xor\' operation between self and other\'s digits.'

def logical_xor(self, other, context=None):

    if (context is None):
        context = getcontext()
    other = _convert_other(other, raiseit=True)
    if ((not self._islogical()) or (not other._islogical())):
        return context._raise_error(InvalidOperation)
    else:
        (opa, opb) = self._fill_logical(context, self._int, other._int)
        result = ''.join([str((int(a) ^ int(b))) for (a, b) in zip(opa, opb)])
        return _dec_from_triple(0, (result.lstrip('0') or '0'), 0)
