class_docstr: Magic object referring to the local variables in a function definition.
  
  Obtain with `ProgramBuilder.vars`.  Overrides `setattr` and `getattr` to
  provide a smooth interface to reading and defining variables:
  
  - `ProgramBuilder.var.foo = ProgramBuilder.{call,primop}`
    records an assignment to the auto-batched variable `foo`, possibly
    binding it, and
  
  - `ProgramBuilder.var.foo` reads from the auto-batched variable `foo`
    (if it is bound).
code: def __init__(self, context):
      super(_MagicVars, self).__setattr__("_context", context)
  
imports: import collections
  import contextlib
  import inspect
  from tensorflow_probability.python.experimental.auto_batching import instructions
label_desc: Use image node_id 1 to create a new _MagicVars object from inherited base classes: object with example: obj = _MagicVars(context)