'Performs complex expansion on \'self\' and returns a tuple
containing collected both real and imaginary parts. This
method can\'t be confused with re() and im() functions,
which does not perform complex expansion at evaluation.
However it is possible to expand both re() and im()
functions and get exactly the same results as with
a single call to this function.
>>> from sympy import symbols, I
>>> x, y = symbols(\'x,y\', real=True)
>>> (x + y*I).as_real_imag()
(x, y)
>>> from sympy.abc import z, w
>>> (z + w*I).as_real_imag()
(re(z) - im(w), re(w) + im(z))'

def as_real_imag(self, deep=True, **hints):

    from sympy import im, re
    if (hints.get('ignore') == self):
        return None
    else:
        return (re(self), im(self))
