code: def __getitem__(self, index):
      if index == 0:
          return self.weights
      elif index == 1:
          return self.factors
      elif index == 2:
          return self.projections
      else:
          raise IndexError(
              f"You tried to access index {index} of a PARAFAC2 tensor.\n"
              "You can only access index 0, 1 and 2 of a PARAFAC2 tensor"
              "(corresponding respectively to the weights, factors and projections)"
          )
  
imports: from .base import FactorizedTensor
  import ivy
  from copy import deepcopy
label_desc: Use image node_id 2 for calling the Parafac2Tensor obj's underlying member method code with example usage: obj.__getitem__(index) and returns: self, self, self