2016-09-04 7 views
-3

Это вопрос: он отбил меня; моя попытка в следующем посте.Как установить свойства в конструкторе, который имеет только собственный аргумент. Я также не знаю, как определить методы без реализации. Внутри класса

Создайте класс, называемый банковским счетом, который имеет методы вывода и депозита без реализации.

Создайте класс сберегательный счет, который наследуется от банковского счета. SavingsAccount должен иметь конструктор, который принимает только собственный аргумент. Этот конструктор устанавливает свойство, называемое балансом, равным 500. (Это должен быть минимальный баланс в любой момент времени).

В классе сберегательного счета применяйте метод депозита, который принимает суммы денежных средств, соответственно обновляет баланс и возвращает баланс. При отрицательной сумме вкладов возвращайте недействительную сумму депозита. В классе сберегательных счетов применяйте метод снятия, который принимает сумму снятия наличных, вычитает эту сумму из текущего баланса и возвращает остаток. Этот метод никогда не должен позволять балансу становиться ниже 500. (Проверьте это условие и результат. Невозможно выйти за пределы минимального остатка на счете, если это произойдет). Кроме того, вывод не может выйти за пределы текущего сальдо счета, если сумма снятия превышает текущий баланс. Для отрицательной суммы возврата возвратите недопустимую сумму отзыва.

Создайте класс, называемый текущей учетной записью, которая наследуется от банковского счета. CurrentAccount должен иметь конструктор, который принимает только собственный аргумент и устанавливает свойство, называемое балансом, равным 0.

В классе текущей учетной записи внедрите метод депозита, который принимает суммы денежных средств, соответственно обновляет баланс, а затем возвращает баланс. Для отрицательной суммы вклада возвращайте недействительную сумму депозита. В текущем классе учетной записи внедрите метод отзыва, который принимает сумму снятия наличных, вычитает эту сумму из текущего баланса и возвращает остаток. Для отрицательной суммы возврата возвратите недействительную сумму отзыва. Извлечение большего, чем текущий баланс, должно завершиться неудачей, когда сообщение не может выйти за пределы текущего сальдо счета.

Вот моя попытка:

class BankAccount: 
     def __init__ 

(self,name,number,balance): 

      self.name=name 
      self.number=number 
      self.balance=balance 

class SavingsAccount(BankAccount): 

     def __init__(self, balance=500): 
     assert(self.balance>500), "minimum balance is 500" 

    def deposit (self, amount): 

     if amount<0: 

      return "Invalid deposit amount" 

     self.balance+=amount 

     return self.balance 
    def withdraw(self,amount): 


     Assert 
     (self.balance>amount), 
     "cannot withdraw" 

     if amount<0: 

      return "Invalid amount" 
     self.balance-=amount 

     return self.balance 

class currentaccount(BankAccount): 

    def __init__(self,balance=0): 

     def deposit (self, amount): 

      if amount<0: 

       return ("Invalid deposit amount") 

      self.balance+=amount 

      return self.balance 

    def withdrawal (self, amount): 

     assert (self.balance > amount),"cannot withdraw beyond the current account balance" 

     if amount<0: 

      return "Invalid amount" 
     self.balance-=amount 

     return self.balance 
+1

Добро пожаловать в [SO]. Вы должны изменить свою попытку в этом вопросе, а не размещать ее в другом месте. –

ответ

2

Код ниже работает!

class BankAccount(object): 

    def __init__(self): 
     pass 

    def withdraw(): 
     pass 
    def deposit(): 
     pass 

class SavingsAccount(BankAccount): 

    def __init__(self): 
     self.balance = 500 

    def deposit(self, amount): 
     if (amount < 0): 
      return "Invalid deposit amount" 
     else: 
      self.balance += amount 
      return self.balance 

    def withdraw(self, amount): 
     if ((self.balance - amount) > 0) and ((self.balance - amount) < 500): 
      return "Cannot withdraw beyond the minimum account balance" 
     elif (self.balance - amount) < 0: 
      return "Cannot withdraw beyond the current account balance" 
     elif amount < 0: 
      return "Invalid withdraw amount" 
     else: 
      self.balance -= amount 
      return self.balance 

class CurrentAccount(BankAccount): 

    def __init__(self): 
     self.balance = 0 


    def deposit(self, amount): 
     if amount < 0: 
      return "Invalid deposit amount" 
     else: 
      self.balance += amount 
      return self.balance 


    def withdraw(self, amount): 
     if amount < 0: 
      return "Invalid withdraw amount" 
     elif self.balance < amount: 
      return "Cannot withdraw beyond the current account balance" 
     else: 
      self.balance -= amount 
      return self.balance 
0

Прочитайте внимательно задание: установить баланс до 500 каждый раз; нет необходимости в другом аргументе конструктора. Нет имени, номера учетной записи.

Методы, "нет реализации" просты:

def method(): 
    pass 

ли что получить вы двигаетесь? Не пытайтесь сделать это сложнее, чем на самом деле: начинайте просто, напишите несколько строк за раз и отлаживайте их до того, как вы перейдете.

0

Чтобы установить конструктор только с самостоятельной аргумент, сделать это

class Example(object): 
    def __init__(self): 
     pass 

Для этого конкретного вопроса, прочитайте инструкции шаг за шагом и реализовать методы, как говорят инструкции. Улов здесь должен иметь правильную логику. В классе сберегательных счетов убедитесь, что сначала вы проверяете овердрафты, затем убедитесь, что изъятие не приводит к балансу менее 500. Этот заказ важен.У меня была аналогичная проблема, и я решил ее после внесения изменений.

Вот решение:

class BankAccount(object): 
    def withdraw(): 
     pass 

    def deposit(): 
     pass 


class SavingsAccount(BankAccount): 
    def __init__(self): 
     self.balance = 500 

    def deposit(self, amount): 
     if amount < 0: 
      return "Invalid deposit amount" 
     else: 
      self.balance += amount 
     return self.balance 

    def withdraw(self, amount): 
     if amount < 0: 
      return "Invalid withdraw amount" 
     elif amount > self.balance: 
      return "Cannot withdraw beyond the current account balance" 
     elif (self.balance - amount) < 500: 
      return "Cannot withdraw beyond the minimum account balance" 
     else: 
      self.balance -= amount 
     return self.balance 


class CurrentAccount(BankAccount): 
    def __init__(self): 
     self.balance = 0 

    def deposit(self, amount): 
     if amount < 0: 
      return "Invalid deposit amount" 
     else: 
      self.balance += amount 
     return self.balance 

    def withdraw(self, amount): 
     if amount < 0: 
      return "Invalid withdraw amount" 
     elif self.balance < amount: 
      return "Cannot withdraw beyond the current account balance" 
     else: 
      self.balance -= amount