With stacks, size matters. If we’re not careful, we can accidentally over-fill them with data. Since we don’t want any stack overflow, we need to go back and make a few modifications to our methods that help us track and limit the stack size so we can keep our stacks healthy.
What do we do if someone tries to
pop() when our stack is empty?
How do we keep someone from
push()ing to a stack that has already reached its limit?
How do we even know how large our stack has gotten?
__init__(), let’s add two new properties:
limit should be accepted as a parameter with a default of 1000. Inside the method, set the instance
limit property to the passed in value of
size should be set to 0 in
pop(), wrap the current body of each method in an
if clause that checks if the
size of the stack is greater than 0.
At the end of each method, outside the
if clause, add an
else clause with a print statement to let users know that the stack is empty.
pop() just before the return statement, reduce the
size of the stack by 1.