code: def slots(self):
          
  
          def grouped_slots():
              # Not interested in object, since it can't have slots.
              for cls in self.mro()[:-1]:
                  try:
                      cls_slots = cls._slots()
                  except NotImplementedError:
                      continue
                  if cls_slots is not None:
                      yield from cls_slots
                  else:
                      yield None
  
          if not self.newstyle:
              raise NotImplementedError(
                  "The concept of slots is undefined for old-style classes."
              )
  
          slots = list(grouped_slots())
          if not all(slot is not None for slot in slots):
              return None
  
          return sorted(slots, key=lambda item: item.value)
docs: Get all the slots for this node.
  
          :returns: The names of slots for this class.
              If the class doesn't define any slot, through the ``__slots__``
              variable, then this function will return a None.
              Also, it will return None in the case the slots were not inferred.
          :rtype: list(str) or None