title: Difference between defining typing.Dict and dict?
body: <p>I am practicing using type hints in Python 3.5. One of my colleague uses <code>typing.Dict</code>:</p>
  
  <pre><code>import typing
  
  
  def change_bandwidths(new_bandwidths: typing.Dict,
                        user_id: int,
                        user_name: str) -&gt; bool:
      print(new_bandwidths, user_id, user_name)
      return False
  
  
  def my_change_bandwidths(new_bandwidths: dict,
                           user_id: int,
                           user_name: str) -&gt;bool:
      print(new_bandwidths, user_id, user_name)
      return True
  
  
  def main():
      my_id, my_name = 23, "Tiras"
      simple_dict = {"Hello": "Moon"}
      change_bandwidths(simple_dict, my_id, my_name)
      new_dict = {"new": "energy source"}
      my_change_bandwidths(new_dict, my_id, my_name)
  
  if __name__ == "__main__":
      main()
  </code></pre>
  
  <p>Both of them work just fine, there doesn't appear to be a difference. </p>
  
  <p>I have read the <a href="https://docs.python.org/3/library/typing.html"><code>typing</code> module documentation</a>.</p>
  
  <p>Between <code>typing.Dict</code> or <code>dict</code> which one should I use in the program?</p>