Это вопрос: это меня поразило; моя попытка в моем следующем посте.

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

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

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

Создайте класс под названием текущий счет, который наследуется от банковского счета. CurrentAccount должен иметь конструктор, который принимает только аргумент self и устанавливает для свойства с именем balance значение 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
-3
user6793231 5 Сен 2016 в 02:16

3 ответа

Лучший ответ

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

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
    
2
Community 20 Июн 2020 в 09:12

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

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
0
Bonny 17 Сен 2016 в 09:32

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

Методы «без реализации» просты:

def method():
    pass

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

0
Prune 7 Сен 2016 в 23:12