더북(TheBook)

Self Check

1

# 계좌 클래스
class Customer_account:
    def __init__(self, name, bal):
        self.name = name
        self.balance = bal    # 통장 잔고
        print(self.name, '고객님! 계좌를 개설했습니다. 잔고는', self.balance, '원')

# 은행 클래스
class Bank:
    # 입금 거래, customer에 customer_account 객체 전달
    def deposit(self, customer, amount):
        customer.balance += amount # (가)
        print(customer.name, '고객님', amount, '원 입금')
        print('입금 후 잔고는', customer.balance, '원')

    # 출금 거래, customer에 customer_account 객체 전달
    def withdrawal(self, customer, amount):
        customer.balance -= amount # (나)
        print(customer.name, '고객님', amount, '원 출금')
        print('출금 후 잔고는', customer.balance, '원')

    # 계좌이체 거래, sender와 reciever에 customer_account 객체 전달
    def send_money(self, sender, reciever, amount):
        sender.balance -= amount
        reciever.balance += amount # (다)
        print(sender.name, '고객님이', reciever.name, '고객님께', amount, '원 송금')
        print('이체 후 잔고는', sender.name, sender.balance, '원', reciever.name, reciever.balance, '원')

Bank 클래스의 메서드는 모두 Customer_account 클래스의 객체와 거래금액을 인자로 받습니다. 따라서 매개변수 customer로 받은 고객계좌 객체의 잔고에 거래금액만큼 더하거나 빼면 됩니다.

(가)는 입금 거래이므로 customer.balanceamount만큼 더하고, (나)는 출금 거래이므로 customer.balance에서 amount만큼 뺍니다. (다)는 계좌이체 거래이므로 보내는 사람의 잔고에서는 이체 금액만큼 빼고(sender.balance -= amount), 받는 사람의 잔고에는 이체 금액만큼 더합니다(reciever.balance += amount).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.