class_docstr: Abstract base class for protocol messages.
  
  Protocol message classes are almost always generated by the protocol
  compiler.  These generated types subclass Message and implement the methods
  shown below.
docstr: Checks if a certain extension is present for this message.
  
  Extensions are retrieved using the :attr:`Extensions` mapping (if present).
  
  Args:
    extension_handle: The handle for the extension to check.
  
  Returns:
    bool: Whether the extension is present for this message.
  
  Raises:
    KeyError: if the extension is repeated. Similar to repeated fields,
      there is no separate notion of presence: a "not present" repeated
      extension is an empty list.
docstr_tok: ["Checks","if","a","certain","extension","is","present","for","this","message",".","Extensions","are","retrieved","using","the",":","attr",":","`","Extensions","`","mapping","(","if","present",")",".","Args",":","extension_handle",":","The","handle","for","the","extension","to","check",".","Returns",":","bool",":","Whether","the","extension","is","present","for","this","message",".","Raises",":","KeyError",":","if","the","extension","is","repeated",".","Similar","to","repeated","fields",",","there","is","no","separate","notion","of","presence",":","a","``","not","present","''","repeated","extension","is","an","empty","list","."]
code: def HasExtension(self, extension_handle):
      """Checks if a certain extension is present for this message.
  
      Extensions are retrieved using the :attr:`Extensions` mapping (if present).
  
      Args:
        extension_handle: The handle for the extension to check.
  
      Returns:
        bool: Whether the extension is present for this message.
  
      Raises:
        KeyError: if the extension is repeated. Similar to repeated fields,
          there is no separate notion of presence: a "not present" repeated
          extension is an empty list.
      """
      raise NotImplementedError
  
label_desc: Use image node_id 20 for calling the Message obj's underlying member method code with example usage: obj.HasExtension(extension_handle) without return types