27 lines
647 B
Python
27 lines
647 B
Python
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
|