[docs]defis_empty(self)->bool:"""Determines is empty Returns: bool: true is empty, false otherwise """returnlen(self._stack_items)==0
[docs]defpush(self,*args):"""Push item to stack items"""self._stack_items+=args
[docs]defpop(self)->Any:"""Pop the object Raises: IndexError: stack if empty Returns: Any: stack items with popped item """ifself.is_empty():raiseIndexError("LIFO Stack is empty")returnself._stack_items.pop()
[docs]defpeek(self)->Any:"""Peek the last item Raises: IndexError: stack is empty Returns: Any: stack item """ifself.is_empty():raiseIndexError("LIFO Stack is empty")returnself._stack_items[-1]
@propertydefsize(self)->int:"""Get stack length Returns: int: length of stack items """returnlen(self._stack_items)def__str__(self)->str:"""String representation of object Returns: str: string representation """return" -> ".join(map(str,reversed(self._stack_items)))