title: putting current class as return type annotation
body: <p>In python 3 I can make arguments and return type annotations. Example:</p>
  
  <pre><code>class Graph:
      def __init__(self, V: int, E: int, edges: list):
          pass
  
      @classmethod
      def fromfile(cls, readobj: type(sys.stdin)):
          pass
  
      def V(self) -&gt; int:
          pass
  
      def E(self) -&gt; int:
          pass
  </code></pre>
  
  <p>The problem is I can't make an annotation with return type of the current class (Graph), which is not defined yet.
  Example:</p>
  
  <pre><code>class Graph:
     def reverse(self) -&gt; Graph:
         pass
  </code></pre>
  
  <p>This code goes with error</p>
  
  <pre><code>def reverse(self) -&gt; Graph:
  NameError: name 'Graph' is not defined
  </code></pre>
  
  <p>These annotations are really useful both for documenting and allowing IDE to recognize argument and return types => enable autocomplete</p>
  
  <p>UPD:
  So what I came up is this is either impossible or requires some hacks I don't like, so I decided to use just <code>def reverse (self) -&gt; 'Graph':</code> 
  which is understandable for documentation although breaks the rule. The downside is that it doesn't work for IDE autocomplete.</p>