반응형
안녕하세요. BlockDMask 입니다.
오늘은 파이썬의 클래스(class)와 그 안에서 자주 쓰이는 __init__
, self
키워드에 대해 알아보겠습니다.
클래스는 객체지향 프로그래밍의 핵심이며,
처음 파이썬을 배우는 분들에게는 살짝 낯설 수 있지만,
한 번 익히면 코드를 더 구조적으로 짤 수 있게 됩니다.
1. 클래스란?
간단히 말해서, 클래스는 설계도이고, 객체는 실제 만들어진 물건입니다.
예를 들어, 사람이라는 클래스를 만들면,
이 클래스는 이름(name), 나이(age) 같은 속성(변수)과 인사하기 같은 동작(함수)을 가질 수 있습니다.
2. 가장 기본적인 클래스 예제
class Person:
def say_hello(self):
print("안녕하세요!")
p = Person()
p.say_hello()
출력:
안녕하세요!
p = Person()
→ 클래스를 이용해 객체(인스턴스)를 생성self
는 해당 인스턴스 자신을 의미합니다.
3. __init__ 함수란?
클래스를 기반으로 객체가 생성될 때 자동으로 호출되는 함수입니다.
즉, 객체 초기화(셋팅)를 위한 함수입니다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"저는 {self.name}이고, {self.age}살입니다.")
p1 = Person("BlockDMask", 30)
p1.introduce()
출력:
저는 BlockDMask이고, 30살입니다.
4. self란 무엇인가?
self
는 해당 객체 자신을 가리킵니다.
다른 언어의 this
키워드와 비슷한 역할입니다.
class Cat:
def speak(self):
print("self는 누구인가?", self)
c = Cat()
print("인스턴스:", c)
c.speak()
출력:
인스턴스: <__main__.Cat object at 0x...>
self는 누구인가? <__main__.Cat object at 0x...>
self
는 메서드 호출 시 자동으로 인스턴스 자신이 전달된다는 걸 알 수 있습니다.
5. 여러 객체를 만들어서 비교해보기
p1 = Person("Alice", 25)
p2 = Person("Bob", 32)
p1.introduce()
p2.introduce()
출력:
저는 Alice이고, 25살입니다.
저는 Bob이고, 32살입니다.
각각의 객체는 독립적인 속성을 가집니다.
6. 클래스에 기본값 지정하기
class Dog:
def __init__(self, name="이름 없음"):
self.name = name
def bark(self):
print(f"{self.name}가 멍멍 짖어요!")
d1 = Dog()
d2 = Dog("초코")
d1.bark()
d2.bark()
출력:
이름 없음가 멍멍 짖어요!
초코가 멍멍 짖어요!
생성자에 기본값을 넣으면 더 유연하게 사용할 수 있습니다.
7. 클래스를 활용한 실전 예제 - 은행 계좌 만들기
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.balance = balance
def deposit(self, amount):
self.balance += amount
print(f"{amount}원이 입금되었습니다. 잔액: {self.balance}원")
def withdraw(self, amount):
if amount > self.balance:
print("잔액이 부족합니다.")
else:
self.balance -= amount
print(f"{amount}원이 출금되었습니다. 잔액: {self.balance}원")
acc = BankAccount("BlockDMask", 10000)
acc.deposit(5000)
acc.withdraw(3000)
acc.withdraw(20000)
출력:
5000원이 입금되었습니다. 잔액: 15000원
3000원이 출금되었습니다. 잔액: 12000원
잔액이 부족합니다.
이처럼 실생활 개념을 클래스화하면 매우 직관적인 구조가 됩니다.
8. 결론
- 클래스는 관련된 데이터와 기능을 묶어서 표현하는 단위입니다.
__init__
은 객체 생성 시 자동 실행되는 초기화 함수입니다.self
는 인스턴스 자신을 참조합니다.- 실전 예제처럼 클래스는 현실 세계의 구조를 코드로 잘 표현할 수 있게 해줍니다.
이상, 파이썬 클래스 초보자 가이드 (__init__, self)에 대해 정리해보았습니다.
오늘도 읽어주셔서 감사합니다.
반응형
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지) (0) | 2025.03.31 |
---|---|
[Python] 파이썬 리스트 컴프리헨션 vs for문 (0) | 2025.03.29 |
[Python] 파이썬 *args와 **kwargs 알아보기 (0) | 2025.03.27 |
[Python] 파이썬에서 파일 경로 다루기 (`os` vs `pathlib`) (0) | 2025.03.25 |
[Python] 파이썬 zip() 함수 활용법 (0) | 2025.03.23 |
[Python] 파이썬 딕셔너리에서 get() vs [] 차이점 (0) | 2025.03.19 |
[Python] 파이썬 with open() 을 써야하는 이유 (0) | 2025.03.08 |
[Python] 파이썬 enumerate() 함수로 인덱스와 값 동시에 가져오기 (0) | 2025.02.17 |