<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_question_answer_id(self, question, fast=False, bust_questions_cache=False):
 """Get the index of the answer that was given to `question` See the documentation for :meth:`~.get_user_question` for important caveats about the use of this function. :param question: The question whose `answer_id` should be retrieved. :type question: :class:`~okcupyd.question.BaseQuestion` :param fast: Don't try to look through the users existing questions to see if arbitrarily answering the question can be avoided. :type fast: bool :param bust_questions_cache: :param bust_questions_cache: clear the :attr:`~okcupyd.profile.Profile.questions` attribute of this users :class:`~okcupyd.profile.Profile` before looking for an existing answer. Be aware that even this does not eliminate all race conditions. :type bust_questions_cache: bool """

        if hasattr(question, 'answer_id'):
            # Guard to handle incoming user_question.
            return question.answer_id

        user_question = self.get_user_question(
            question, fast=fast, bust_questions_cache=bust_questions_cache
        )
        # Look at recently answered questions
        return user_question.get_answer_id_for_question(question)