title: PEP0484 Type Hinting: Annotating argument of given class, not instance
body: <p>Let me explain with some sample, first.<br>
  Suppose there is a web API client module (MyAPIClient), a mapper class that converts arbitrary response into Python object (ObjectMapper), and a class that represents response object (User and Message).</p>
  
  <pre><code>class User(MyResponse):
      def __init__(self, status: int, id: int, name: str) -&gt; None:
          super().__init__(status)
          self.id = int
          self.name = name
  
  class Message(MyResponse):
      def __init__(self, status: int, id: int, text: str) -&gt; None:
          super().__init__(status)
          self.id = int
          self.text = name
  
  class ObjectMapper(object):
      def __init__(self, mapping_class: ???) -&gt; None:
          self.mapping_class = mapping_class
  
      def map(self, obj) -&gt; MyResponse:
          return self.mapping_class(**kwargs)
  
  class MyAPIClient(object):
      def __init__(self, ...) -&gt; None:
          pass
  
      def get_current_user(...) -&gt; User:
          self.request("GET", "/current_user", ObjectMapper(User))
  
      def get_message(...) -&gt; Message:
          self.request("GET", "/message", ObjectMapper(Message))
  
      def request(method: str, endpoint: str, mapper: ObjectMapper):
          res = requests.request(...)
          return json.loads(response.content.decode(), object_hook=mapper.map)
  </code></pre>
  
  <p>As shown in the sample above, ObjectMapper receives an argument named "mapping_class." This is <strong>NOT</strong> an instance of the class, but a class itself as shown in <em>MyAPIClient#get_current_user</em> and <em>MyAPIClient#get_message</em>. My question is how I should annotate this mapping_class in the <strong>ObjectMapper#__init__</strong> which is currently marked as "???" in the sample above.</p>