Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 41 additions & 2 deletions Module8/practice/IBank/IBank_part1_3.py
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -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)
Expand Down