class predatorycreditcard(creditcard) """an extension to creditcard that compounds interest and fees "" def init (selfcustomerbankacntlimitapr) """create new predatory credit card instance the initial balance is zero customer the name of the customer ( john bowman bank the name of the bank ( california savings acnt the acount identifier ( limit credit limit (measured in dollars apr annual percentage rate ( for apr ""call super constructor superinit (customerbankacntlimit self apr apr def charge(selfprice) """charge given price to the cardassuming sufficient credit limit return true if charge was processed return false and assess fee if charge is denied "" success supercharge(pricecall inherited method if not successassess penalty self balance + return success caller expects return value def process month(self) """assess monthly interest on outstanding balance "" if self balance if positive balanceconvert apr to monthly multiplicative factor monthly factor pow( self apr / self balance monthly factor code fragment subclass of creditcard that assesses interest and fees