title: How current state is managed in ConversationHandler in python-telegram-api
body: <p>I want to use a <a href="https://python-telegram-bot.readthedocs.io/en/latest/telegram.ext.conversationhandler.html" rel="nofollow noreferrer">ConversationHandler</a> in my bot. At least, it would need three parameters:</p>
  
  <pre><code>class telegram.ext.ConversationHandler(entry_points, states, fallbacks)
  </code></pre>
  
  <p>AFAIK, entry points are triggers for the conversation handler, then each state may execute its own handlers, and <a href="https://python-telegram-bot.readthedocs.io/en/latest/telegram.ext.conversationhandler.html#telegram.ext.ConversationHandler.fallbacks" rel="nofollow noreferrer">based on fallbacks definition</a>, if all handlers from a state return <code>false</code>, then fallback is triggered.</p>
  
  <p>Ok, therefore, handlers return something. But a handler is an object, an instance of a class.</p>
  
  <p>Based on <a href="https://github.com/guysoft/AlarmBot/blob/master/src/alarm_bot.py" rel="nofollow noreferrer">this example</a>, looking for example to the <code>new_alarm_handler</code>.</p>
  
  <h2>So my doubts</h2>
  
  <ol>
  <li><p>How is it, that handlers return a value? (They appear to return their callback function result).</p></li>
  <li><p>Where is the current state of the conversation? It appears to not be accessible, but to be the last result of the last handler executed. Is it it? If not, then what do I have to do to change the current state in the conversation?</p></li>
  <li><p>Therefore, when a state is reached, their list of handlers (value in the dictionary <code>states</code> passed as arg) is executed. But being a list, it could be more than one, so there could be more than one returned state. How is it managed?</p></li>
  </ol>