code: def _init(self, *args, **kwargs):
          
          self._init_attr('_deps', None)
  
          self._init_attr('_ban_optimize', False)
          self._init_attr('_engine', None)
          self._init_attr('_Expr__execution', None)
  
          self._init_attr('_need_cache', False)
          self._init_attr('_mem_cache', False)
  
          if '_id' not in kwargs:
              kwargs['_id'] = new_id()
  
          super(Expr, self)._init(*args, **kwargs)
docs: _deps is used for common dependencies.
          When a expr depend on other exprs, and the expr is not calculated from the others,
          the _deps are specified to identify the dependencies.