class_docstr: A function cache based on code objects.
  
  Code objects are good proxies for the source code of a function.
  
  This cache efficiently handles functions that share code objects, such as
  functions defined in a loop, bound methods, etc.
  
  The cache falls back to the function object, if it doesn't have a code object.
class_docstr_tok: ["A","function","cache","based","on","code","objects",".","Code","objects","are","good","proxies","for","the","source","code","of","a","function",".","This","cache","efficiently","handles","functions","that","share","code","objects",",","such","as","functions","defined","in","a","loop",",","bound","methods",",","etc",".","The","cache","falls","back","to","the","function","object",",","if","it","does","n't","have","a","code","object","."]
code: def _get_key(self, entity):
      if hasattr(entity, "__code__"):
          return entity.__code__
      else:
          return entity
  
file_path: tensorflow-upstream/tensorflow/python/autograph/pyct/cache.py
imports: import inspect
  import weakref
label_desc: Use image node_id 1 for calling the CodeObjectCache obj's underlying member method code with example usage: obj._get_key(entity) and returns: entity, entity