Here is a basic working version.
class ChargeCard:
def __init__(self, limit, balance=0):
self._limit = limit
self._balance = balance
def getBalance(self):
return self._balance
def getLimit(self):
return self._limit
def charge(self, amount):
if amount + self._balance <= self._limit:
self._balance += amount
return True
else:
return False
def deposit(self, value):
self._balance -= value
Here is a working version (including extra credit parameter checking).
class ChargeCard:
def __init__(self, limit, balance=0):
if not isinstance(limit, int):
raise TypeError('limit must be integer')
if limit < 0:
raise ValueError('limit must be nonnegative')
if not isinstance(balance, int):
raise TypeError('balance must be integer')
self._limit = limit
self._balance = balance
def getBalance(self):
return self._balance
def getLimit(self):
return self._limit
def charge(self, amount):
if not isinstance(amount, int):
raise TypeError('amount must be integer')
if amount <= 0:
raise ValueError('amount must be positive')
if amount + self._balance <= self._limit:
self._balance += amount
return True
else:
return False
def deposit(self, value):
if not isinstance(value, int):
raise TypeError('value must be integer')
if value < 0:
raise ValueError('value must be nonnegative')
self._balance -= value