code: def push(self, item, *, index=None):
          
          if index is None:
              self.__list.append(item)
          else:
              self.__list.insert(index, item)
          name = getattr(item, 'name', None)
          if name is not None:
              self.__dict[name] = item
docs: Push item to the chain.