parameters: (self, descriptor)
return_statement: return self._classes[descriptor]
docstring: Obtains a proto2 message class based on the passed in descriptor.
  
      Passing a descriptor with a fully qualified name matching a previous
      invocation will cause the same class to be returned.
  
      Args:
        descriptor: The descriptor to build from.
  
      Returns:
        A class describing the passed in descriptor.
docstring_summary: Obtains a proto2 message class based on the passed in descriptor.
docstring_tokens: Obtains a proto2 message class based on the passed in descriptor .
function: def GetPrototype(self, descriptor):
      """Obtains a proto2 message class based on the passed in descriptor.
  
      Passing a descriptor with a fully qualified name matching a previous
      invocation will cause the same class to be returned.
  
      Args:
        descriptor: The descriptor to build from.
  
      Returns:
        A class describing the passed in descriptor.
      """
      if descriptor not in self._classes:
        result_class = self.CreatePrototype(descriptor)
        # The assignment to _classes is redundant for the base implementation, but
        # might avoid confusion in cases where CreatePrototype gets overridden and
        # does not call the base implementation.
        self._classes[descriptor] = result_class
        return result_class
      return self._classes[descriptor]
function_tokens: def GetPrototype ( self , descriptor ) : if descriptor not in self . _classes : result_class = self . CreatePrototype ( descriptor ) # The assignment to _classes is redundant for the base implementation, but # might avoid confusion in cases where CreatePrototype gets overridden and # does not call the base implementation. self . _classes [ descriptor ] = result_class return result_class return self . _classes [ descriptor ]