code: def copy_public_vars(self):
          
          vars = self.get_vars()
          vars = dict([k for k in list(vars.items()) if not k[0].startswith('_')])
          return deepcopy(vars)
docs: Like get_vars(), but does not include any private variables and
          deep copies each variable.