class Jar: def __init__(self, capacity=12): if not isinstance(capacity, int) or capacity < 0: raise ValueError("Invalid capacity") self._capacity = capacity self._size = 0 def __str__(self): return '🍪' * self.size def deposit(self, n): new_size = n + self.size if new_size > self.capacity or new_size < 0: raise ValueError("Exceeded capacity") self._size += n def withdraw(self, n): return self.deposit(-n) @property def capacity(self): return self._capacity @property def size(self): return self._size