가이드라인

클래스와 인스턴스 예시

이번 수업에서는 "은행 계좌"를 예로 들어 클래스(Class)인스턴스(Instance)(또는 객체)의 관계를 살펴보겠습니다.

아래 코드는 'BankAccount' 클래스를 정의하고, 여러 계좌 인스턴스를 생성하여 각 계좌의 고유한 속성과 동작을 관리하는 방법을 보여줍니다.


클래스 설명

BankAccount 클래스는 은행 계좌를 나타내며, 다음과 같은 속성과 메서드를 포함합니다.

  • 속성: owner(소유자), balance(잔액)

  • 메서드: deposit(입금), withdraw(출금), display_balance(잔액 조회)

(__init__)은 클래스를 바탕으로 계좌 인스턴스가 생성될 때 호출되는 생성자 메서드로, 계좌 객체에 소유자(owner)와 초기 잔액(balance)을 설정합니다.

잔액은 기본값으로 0(balance=0)을 갖습니다.

BankAccount 클래스
class BankAccount: # 생성자 메서드 def __init__(self, owner, balance=0): self.owner = owner self.balance = balance # 입금 메서드 def deposit(self, amount): self.balance += amount print(f"{amount}가 입금되었습니다.") # 출금 메서드 def withdraw(self, amount): if self.balance >= amount: self.balance -= amount print(f"{amount}가 출금되었습니다.") else: print("잔액이 부족합니다.") # 잔액 조회 메서드 def display_balance(self): print(f"계좌 잔액: {self.balance}")

클래스 사용 예시

아래는 BankAccount 클래스를 사용하여 계좌 인스턴스 account1account2를 생성하고, 각 계좌에 대해 입금, 출금, 잔액 조회를 수행하는 예제입니다.

클래스 사용 예시
# 인스턴스 생성 account1 = BankAccount("코드프렌즈", 1000) account2 = BankAccount("긱하우스", 2000) # account1에 대한 입금, 출금, 잔액 조회 account1.deposit(500) # 500이 입금되었습니다. account1.withdraw(200) # 200이 출금되었습니다. account1.display_balance() # 계좌 잔액: 1300 # account2에 대한 입금, 출금, 잔액 조회 account2.deposit(1000) # 1000이 입금되었습니다. account2.withdraw(500) # 500이 출금되었습니다. account2.display_balance() # 계좌 잔액: 1500

각 계좌(account1, account2)는 BankAccount 클래스의 인스턴스로, 독립적인 속성(owner, balance)과 메서드(deposit, withdraw, display_balance)를 갖습니다.

이렇게 클래스를 통해 생성된 인스턴스들은 각자의 데이터를 유지하며, 동일한 메서드를 사용하더라도 각 인스턴스에 따라 다른 결과를 나타냅니다.

예를 들어 account 계좌의 display_balance 메서드를 호출하면 잔액으로 1300이 출력되지만, account2 계좌의 display_balance 메서드를 호출하면 잔액으로 1500이 출력됩니다.


self 키워드는 무엇인가요?

파이썬에서 self는 클래스의 메서드에서 현재 인스턴스를 참조하는 키워드입니다.

클래스 내에서 메서드를 정의할 때, 첫 번째 매개변수로 self를 사용하여 현재 인스턴스에 접근할 수 있습니다.

self 주요 역할은 다음과 같습니다.

  • 인스턴스 속성 접근: self를 사용하여 클래스 내의 메서드에서 해당 인스턴스의 속성에 접근하고 수정할 수 있습니다. 예를 들어, self.balance는 현재 인스턴스의 balance 속성을 참조합니다.

  • 메서드 호출: 같은 인스턴스 내에서 다른 메서드를 호출할 때 self를 사용합니다. 예를 들어, self.deposit(amount)는 같은 인스턴스 내의 deposit 메서드를 호출합니다.

Mission
0 / 1

빈칸에 들어갈 가장 적절한 단어는 무엇일까요?

클래스는 를 생성하기 위한 설계도입니다.
인스턴스
메서드
속성
함수

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과