title: Instantiating a python class from within the same class definition
body: <pre><code>from collections import defaultdict 
  
  #This class represents a directed graph using adjacency list representation 
  class Graph: 
      def __init__(self,vertices): 
          self.V= vertices #No. of vertices 
          self.graph = defaultdict(list) # default dictionary to store graph 
  
      # function to add an edge to graph 
      def addEdge(self,u,v): 
          self.graph[u].append(v) 
  
      # Function that returns reverse (or transpose) of this graph 
      def getTranspose(self): 
          g = Graph(self.V) 
  
          # Recur for all the vertices adjacent to this vertex 
          for i in self.graph: 
              for j in self.graph[i]: 
                  g.addEdge(j,i) 
          return g 
  
  g = Graph(5)
  g.addEdge(1, 0)
  g.addEdge(0, 2)
  g.addEdge(2, 1) 
  g.addEdge(0, 3) 
  g.addEdge(3, 4) 
  </code></pre>
  
  <p>The above code seems to work fine, but I am confused how can the class instantiation in getTranspose be done from within the same class?</p>