From e921e16c3dfe3ba6db9e2875b7107f92af92bc20 Mon Sep 17 00:00:00 2001 From: rundect <93350655+rundect@users.noreply.github.com> Date: Thu, 27 Apr 2023 20:33:53 +0300 Subject: [PATCH] Update IBank_part1_3.py --- Module8/practice/IBank/IBank_part1_3.py | 43 +++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/Module8/practice/IBank/IBank_part1_3.py b/Module8/practice/IBank/IBank_part1_3.py index 4a16f5ab4..0a5d7300f 100644 --- a/Module8/practice/IBank/IBank_part1_3.py +++ b/Module8/practice/IBank/IBank_part1_3.py @@ -1,5 +1,43 @@ class Account: - # TODO-0: скопируйте реализацию из предыдущего решения + def __init__(self, name: str, passport: str, phone_number: str, start_balance: int = 0): + self.name = name + self.passport = passport + self.phone_number = phone_number + self.__balance = start_balance + + def full_info(self) -> str: + """ + Полная информация о счете в формате: "Иван баланс: 100 руб. паспорт: 3200 123456 т.+7-900-200-02-03" + """ + return f"{self.name} баланс: {self.balance} руб. паспорт: {self.passport} т.{self.phone_number}" + + def __repr__(self) -> str: + """ + :return: Информацию о счете в виде строки в формате "Иван баланс: 100 руб." + """ + return f"{self.name} баланс: {self.balance} руб." + + # TODO: реализуйте getter для просмотра баланса + # Подробнее тут: https://pythobyte.com/using-getters-and-setters-in-python-5205-840ed13f/ + @property + def balance(self) -> int: + return self.__balance + + def deposit(self, amount: int) -> None: + """ + Внесение суммы на текущий счет + :param amount: сумма + """ + self.__balance += amount + + def withdraw(self, amount: int) -> None: + """ + Снятие суммы с текущего счета + :param amount: сумма + """ + if self.__balance - amount < 0: + raise ValueError + self.__balance -= amount # TODO-1: напишите реализацию метода transfer() def transfer(self, target_account: 'Account', amount: int) -> None: @@ -9,7 +47,8 @@ def transfer(self, target_account: 'Account', amount: int) -> None: :param amount: сумма перевода :return: """ - pass + self.withdraw(amount) + target_account.deposit(amount) account1 = Account("Иван", "3230 634563", "+7-900-765-12-34", 1000)