Создайте класс с именем CreditCard, используя метод __init__, чтобы назначать значения для current_balance и available_credit. - PullRequest
0 голосов
/ 01 декабря 2018

Дополнительные сведения о проблеме:

  • Инициализируйте current_balance в 0 и available_credit в 10,000.
  • Завершите метод makePurchase, который добавляет текущий баланс и убирает доступный кредит.Это означает, что возникнет исключение, если будет предпринята попытка приобрести больше, чем доступно.
  • Напишите второй метод makePayment, в качестве параметра которого указана сумма, которая уменьшает текущий баланс и добавляет к доступному кредиту.

Мой текущий код:

class CreditCard:
    """ BankAccount class for representing an account within a bank. """

    def __init__(self):
        """ initialize the current_balance """ 
        self.current_balance = 0 #initialize current balance 
        self.available_credit = 10000 #initialize available credit 


    def getBalance(self):
        """ return the current_balance """
        return self.current_balance

    def getAvailableCredit(self):
        """ return the available_credit """
        return self.available_credit

    def makePurchase(self, amount):
        try:
            if (amount <= self.available_credit):
                return (self.available_credit - amount) #deduct from available credit
                return (amount + self.current_balance) #increment current balance
            else:
                raise Exception('Insufficient funds!')
        except Exception as error:
            print('Purchase Error: ' + str(error)+'\n')

    def makePayment(self, payment): #write a payment function 
        try:
            if (payment <= self.current_balance):
                return(payment + self.available_credit) #increases available_credit by amount
                return(self.current_balance - payment) #reduces current balance by amount
            else:
                raise Exception('Payment larger than outstanding balance!')
        except Exception as error:
            print('Payment Error: ' + str(error)+'\n')   

Вторая часть проблемы (не указана) просит выполнить следующие транзакции:

  • Показать доступный кредит
  • Сделать покупку на сумму 1237
  • Показать доступный баланс
  • Сделать платеж на сумму 100
  • Сделать покупку$ 11.50
  • Просмотр доступного баланса
  • Просмотр доступного кредита
  • Сделайте покупку на сумму $ 8 900.

Каждый раз, когда я совершаю транзакцию, онаделает это из исходного баланса, а не из текущего баланса.Например, я использовал следующий код при совершении покупки за 8 900 долларов:

In: print(cc.makePurchase(8900))

Out: 1100 #should be getting an error instead due to over-drafting the account.

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 01 декабря 2018

Проблема здесь в том, что вы возвращаете новое значение вместо изменения свойства объекта, поэтому измените возвращаемые значения следующим образом:

self.available_credit = self.available_credit - amount
self.current_balance = self.current_balance + amount

Таким образом, вы изменяете значение available_credit итекущий баланс.

Повторите это изменение для других операторов возврата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...