'Called when this object executes a look. It allows to customize
just what this means.
Args:
target (Object or list, optional): An object or a list
objects to inspect.
session (Session, optional): The session doing this look.
Returns:
look_string (str): A prepared look string, ready to send
off to any recipient (usually to ourselves)'

def at_look(self, target=None, session=None):

    if (target and (not is_iter(target))):
        return target.return_appearance(self)
    else:
        characters = (list((tar for tar in target if tar)) if target else [])
        sessions = self.sessions.all()
        is_su = self.is_superuser
        result = [('Account    |g%s|n    (you    are    Out-of-Character)' % self.key)]
        nsess = len(sessions)
        result.append((((nsess == 1) and '\n\n|wConnected    session:|n') or ('\n\n|wConnected    sessions    (%i):|n' % nsess)))
        for (isess, sess) in enumerate(sessions):
            csessid = sess.sessid
            addr = ('%s    (%s)' % (sess.protocol_key, ((isinstance(sess.address, tuple) and str(sess.address[0])) or str(sess.address))))
            result.append(('\n    %s    %s' % ((((session.sessid == csessid) and ('|w*    %s|n' % (isess + 1))) or ('        %s' % (isess + 1))), addr)))
        result.append('\n\n    |whelp|n    -    more    commands')
        result.append('\n    |wooc    <Text>|n    -    talk    on    public    channel')
        charmax = (_MAX_NR_CHARACTERS if (_MULTISESSION_MODE > 1) else 1)
        if (is_su or (len(characters) < charmax)):
            if (not characters):
                result.append("\n\n    You    don't    have    any    characters    yet.    See    |whelp    @charcreate|n    for    creating    one.")
            else:
                result.append('\n    |w@charcreate    <name>    [=description]|n    -    create    new    character')
                result.append('\n    |w@chardelete    <name>|n    -    delete    a    character    (cannot    be    undone!)')
        if characters:
            string_s_ending = (((len(characters) > 1) and 's') or '')
            result.append('\n    |w@ic    <character>|n    -    enter    the    game    (|w@ooc|n    to    get    back    here)')
            if is_su:
                result.append(('\n\nAvailable    character%s    (%i/unlimited):' % (string_s_ending, len(characters))))
            else:
                result.append(('\n\nAvailable    character%s%s:' % (string_s_ending, (((charmax > 1) and ('    (%i/%i)' % (len(characters), charmax))) or ''))))
            for char in characters:
                csessions = char.sessions.all()
                if csessions:
                    for sess in csessions:
                        sid = ((sess in sessions) and (sessions.index(sess) + 1))
                        if (sess and sid):
                            result.append(('\n    -    |G%s|n    [%s]    (played    by    you    in    session    %i)' % (char.key, ',    '.join(char.permissions.all()), sid)))
                        else:
                            result.append(('\n    -    |R%s|n    [%s]    (played    by    someone    else)' % (char.key, ',    '.join(char.permissions.all()))))
                else:
                    result.append(('\n    -    %s    [%s]' % (char.key, ',    '.join(char.permissions.all()))))
        look_string = ((((('-' * 68) + '\n') + ''.join(result)) + '\n') + ('-' * 68))
        return look_string
