##Python/0. 파이썬 기초
11. 파이썬 기초 : 클래스 (Class)
허밍-
2025. 4. 11. 10:22
안녕하세요, 허밍입니다!
오늘은 파이썬에서 중요한 개념 중 하나인 **클래스(Class)**에 대해 알아볼 거예요.
클래스는 객체(Object)를 만들기 위한 설계도라고 생각하면 이해하기 쉬워요.
그동안 배웠던 변수, 함수, 조건문, 반복문은 절차지향 프로그래밍의 방식이었다면,
**클래스는 객체지향 프로그래밍(OOP)**으로 나아가는 관문이에요!
📌 1. 클래스란 무엇인가요?
**클래스(Class)**는 관련된 변수와 함수를 하나로 묶어서 새로운 자료형을 만드는 방법이에요.
클래스 = 붕어빵 틀
객체 = 붕어빵
붕어빵 틀(클래스)을 이용해서 여러 개의 붕어빵(객체)을 찍어낼 수 있듯,
클래스를 이용하면 하나의 설계도로 여러 개의 객체를 만들 수 있어요.
📌 2. 클래스 기본 문법
class 클래스이름:
def __init__(self, 속성1, 속성2):
self.속성1 = 속성1
self.속성2 = 속성2
def 메서드이름(self):
# 동작 정의
pass
✔️ __init__() 함수: 객체가 생성될 때 자동으로 호출되는 생성자
✔️ self: 현재 객체 자신을 가리킴 (필수!)
✔️ 메서드: 클래스 안에서 정의된 함수
📌 3. 간단한 클래스 예제
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"안녕하세요, 제 이름은 {self.name}이고 나이는 {self.age}살입니다.")
객체 생성 및 메서드 호출
person1 = Person("허밍", 29)
person1.say_hello()
출력 결과:
안녕하세요, 제 이름은 허밍이고 나이는 29살입니다.
📌 4. 클래스의 구성 요소
구성 요소 설명
속성(Attribute) | 객체가 가지는 값 (변수) |
메서드(Method) | 객체가 수행하는 동작 (함수) |
생성자(Constructor) | 객체가 생성될 때 자동 실행되는 함수 (__init__) |
self | 객체 자기 자신을 가리키는 예약어 |
📌 5. 클래스 응용: 계산기 만들기
class Calculator:
def __init__(self, number):
self.number = number
def add(self, n):
self.number += n
def subtract(self, n):
self.number -= n
def display(self):
print(f"현재 값: {self.number}")
사용 예
calc = Calculator(10)
calc.add(5)
calc.subtract(2)
calc.display() # 현재 값: 13
📌 6. 여러 객체 만들기
하나의 클래스에서 여러 객체를 만들어도 각 객체는 독립적인 상태를 유지해요.
user1 = Person("철수", 25)
user2 = Person("영희", 30)
user1.say_hello()
user2.say_hello()
📌 7. 클래스의 장점
- 코드 재사용이 쉬움
- 구조화된 코드 작성 가능
- 유지보수가 편리
- 복잡한 데이터를 객체로 표현 가능
✅ 오늘 배운 내용 요약
개념 설명
클래스 | 객체를 생성하기 위한 설계도 |
객체 | 클래스로부터 만들어진 실체 |
생성자 __init__() | 객체가 생성될 때 자동 실행 |
self | 객체 자기 자신을 나타냄 |
메서드 | 클래스 안에 정의된 함수 |
📌 실전 연습 문제
❓ 문제 1: Book 클래스를 만들어 제목과 저자 정보를 출력해보세요.
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def info(self):
print(f"{self.title} - 저자: {self.author}")
🏷️ 추천 태그 (10개)
#파이썬클래스 #pythonclass #객체지향 #OOP #초보파이썬 #코딩기초 #파이썬공부 #클래스기초 #프로그래밍개념 #파이썬문법
클래스를 알면 더 큰 프로젝트에도 도전할 수 있어요!
다음 포스팅에서는 클래스의 상속이나 캡슐화 등 객체지향의 심화 개념도 소개해볼게요.
공감되셨다면 ❤️ 눌러주고, 다음 글도 기대해주세요!