반응형
객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어를 구성하는 방식 중 하나로, Python에서도 핵심 개념입니다. 클래스(class)와 객체(object)는 OOP의 중심이며, 초보자들이 꼭 이해해야 할 주제입니다. 이 글에서는 Python에서 클래스를 정의하고 객체를 생성하는 방법, 그리고 클래스와 객체의 차이점과 활용 방법을 실제 예제를 통해 자세히 설명하겠습니다.

1. 클래스(class)란 무엇인가?
1. 클래스의 개념
- 클래스는 객체를 만들기 위한 틀 또는 설계도입니다.
- 클래스에는 속성(변수)과 메서드(함수)를 정의할 수 있습니다.
2. 클래스 정의 문법
class 클래스이름:
def __init__(self):
# 초기화 메서드
pass
3. 예제
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"안녕하세요, 저는 {self.name}이고 {self.age}살입니다.")
2. 객체(object)란 무엇인가?
1. 객체의 개념
- 객체는 클래스를 기반으로 만들어진 실체입니다.
- 클래스는 틀이고, 객체는 그 틀을 바탕으로 만들어진 실제 데이터입니다.
2. 객체 생성 문법
p1 = Person("Alice", 30)
3. 객체 사용 예제
p1.greet() # 출력: 안녕하세요, 저는 Alice이고 30살입니다.
4. 속성 접근
print(p1.name) # 출력: Alice
p1.age = 31
print(p1.age) # 출력: 31
3. 클래스와 객체의 관계 및 용어 정리
1. 클래스 vs 객체 비교
항목 | 클래스(class) | 객체(object) |
정의 | 설계도 | 설계도로 만든 실체 |
생성 | class 키워드 | 클래스() 형태로 생성 |
역할 | 속성과 기능 정의 | 실제 데이터 저장 및 메서드 실행 |
2. self 키워드
- self는 해당 객체 자신을 가리키는 예약어입니다.
- 메서드 정의 시 첫 번째 인자로 항상 포함되어야 합니다.
3. 생성자 함수 __init__()
- 객체 생성 시 자동 호출되는 함수로, 초기 속성을 설정합니다.
4. 실전 예제: 자동차 클래스 만들기
class Car:
def __init__(self, brand, speed):
self.brand = brand
self.speed = speed
def drive(self):
print(f"{self.brand} 자동차가 {self.speed}km/h로 달립니다.")
# 객체 생성
my_car = Car("Hyundai", 120)
# 메서드 호출
my_car.drive()
실행 결과 (터미널)
Hyundai 자동차가 120km/h로 달립니다.
속성 변경
my_car.speed = 150
my_car.drive()
결과
Hyundai 자동차가 150km/h로 달립니다.
5. 추가 팁 및 참고 사항
- 클래스 이름은 대문자로 시작하는 파스칼 표기법(PascalCase)을 따릅니다.
- 객체는 클래스의 인스턴스이며, 여러 개 생성 가능
- 객체별로 고유한 속성과 상태를 가질 수 있습니다.
- __str__() 메서드를 오버라이드하면 객체 출력 시 더 보기 좋은 문자열을 반환할 수 있습니다.
6. 요약 및 마무리
이번 포스팅에서는 Python에서 클래스와 객체의 기본 개념과 문법을 살펴보았습니다. 클래스는 설계도이고, 객체는 그 설계도로 만든 실체입니다. 클래스를 통해 속성과 기능을 정의하고, 객체를 생성하여 다양한 동작을 수행할 수 있습니다. OOP 개념을 이해하고 나면 더 큰 규모의 프로그램이나 유지보수에 강한 코드를 작성하는 데 큰 도움이 됩니다. 실제 예제를 통해 연습해보며 익히는 것이 가장 좋습니다.
7. 관련 글 링크 및 태그
- 관련 글: Python에서 함수 정의와 사용법 - 초보자용 상세 가이드
반응형
'파이썬' 카테고리의 다른 글
[Python] 사용자 정의 함수 만들기 (def, 매개변수, return) (1) | 2025.04.05 |
---|---|
[Python] 날짜와 시간 다루기 (datetime, time 모듈 사용법) (0) | 2025.04.04 |
[Python] try, except 예외 처리 문법과 실전 예제 (0) | 2025.04.04 |
[Python] list, set, tuple, dict 차이점과 선택 기준 (0) | 2025.04.03 |
[Python] 파일 읽기/쓰기 기본 사용법 (open, read, write) (0) | 2025.04.03 |
댓글