class Stack:

    def __init__(self, *items):
        if items:
            self.__items = list(items)
        else:
            self.__items = []

    def __repr__(self):
        return f"Stack({', '.join([repr(item) for item in self.__items])})"

    def push(self, item):
        self.__items.append(item)

    def pop(self):
        return self.__items.pop()

    def peek(self):
        return self.__items[-1]

    def is_empty(self):
        return len(self.__items) == 0

    def __len__(self):
        return len(self.__items)


if __name__ == "__main__":
    stack = Stack(1, 5, 6)

    stack.push(6)
    stack.push(8)
    stack.push("ahoj")

    print(stack)  # Stack(1, 5, 6, 6, 8, 'ahoj')
    print(len(stack))

    print(stack.pop())
    print(stack.pop())
    print(stack.pop())
    print(stack.pop())
    print(stack.pop())
    print(stack.pop())

    print(stack.is_empty())
