class_docstr: Class for an objective composed of a multiple component objectives.
  
  The Acquisition function determines how the objectives are weighted.
  
  Attributes:
      objectives: List of objectives.
class_docstr_tok: ["Class","for","an","objective","composed","of","a","multiple","component","objectives",".","The","Acquisition","function","determines","how","the","objectives","are","weighted",".","Attributes",":","objectives",":","List","of","objectives","."]
docstr: Override base method to error.
docstr_tok: ["Override","base","method","to","error","."]
code: def metric(self) -> Metric:
      """Override base method to error."""
      raise NotImplementedError(
          f"{type(self).__name__} is composed of multiple metrics"
      )
  
imports: from __future__ import annotations
  import warnings
  from logging import Logger
  from typing import Any, Iterable, List, Optional, Tuple
  from ax.core.metric import Metric
  from ax.utils.common.base import SortableBase
  from ax.utils.common.logger import get_logger
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 2 for calling the MultiObjective obj's underlying member method code with example usage: obj.metric() without return types