title: Self referring types in Python 3's type hint
body: <p>Is there a way to define a parameter's type in a class such that the type references itself? </p>
  
  <p>For example, the following won't run:</p>
  
  <pre class="lang-py prettyprint-override"><code>from typing import List
  
  class Node:
      def __init__(self, val: int=0, neighbors: List[Node]=[]):
          self.val = val
          self.neighbors = neighbors
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "node.py", line 3, in &lt;module&gt;
      class Node:
    File "node.py", line 4, in Node
      def __init__(self, val: int=0, neighbors: List[Node]=[]):
  NameError: name 'Node' is not defined
  </code></pre>