| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 인공지능
- 딥러닝 추론 최적화
- 머신러닝
- C++ 기초
- YOLO
- Python
- 파이썬
- git
- comfyui
- 비전AI
- Vision AI
- 파이썬 클래스
- 생성형 AI
- 앱테크
- 프로그래밍
- yolo11
- AI
- github
- 산업적용
- onnx
- pytorch
- 생성형AI
- 리눅스
- Windows
- 스마트팩토리
- 오픈소스
- stable diffusion
- tensorRT
- 시스템관리
- 딥러닝
Archives
- Today
- Total
너도 할 수 있는, 너도밤나무 코딩
[Python] 클래스(Class) 심화 가이드 본문
반응형
파이썬에서 클래스는 객체 지향 프로그래밍(OOP)의 핵심입니다.
이 글에서는 클래스 기본 문법부터 속성, 메서드, 상속, 다형성, 실전 예제와 설계 팁까지 자세히 다룹니다.
1. 클래스 기본 문법
클래스는 데이터와 기능을 하나로 묶은 구조입니다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"안녕하세요, {self.name}입니다. 나이는 {self.age}살이에요.")
# 사용 예
p1 = Person("철수", 30)
p1.greet() # 안녕하세요, 철수입니다. 나이는 30살이에요.
__init__: 생성자(Constructor)self: 인스턴스 자신을 가리킴- 속성과 메서드를 정의할 수 있음
2. 속성(Attribute)과 메서드(Method)
속성
- 인스턴스 속성: 객체마다 다른 값
- 클래스 속성: 모든 객체가 공유
class Dog:
species = "개" # 클래스 속성
def __init__(self, name):
self.name = name # 인스턴스 속성
# 사용 예
d1 = Dog("바둑이")
d2 = Dog("멍멍이")
print(d1.species, d1.name) # 개 바둑이
print(d2.species, d2.name) # 개 멍멍이
메서드
- 인스턴스 메서드: 객체에 종속
- 클래스 메서드: 클래스 자체에 종속 (
@classmethod) - 정적 메서드: 클래스/객체와 관계없이 사용 (
@staticmethod)
class MathUtils:
@staticmethod
def add(a, b):
return a + b
print(MathUtils.add(3, 5)) # 8
3. 상속(Inheritance)
부모 클래스의 속성과 메서드를 자식 클래스가 물려받음.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Cat(Animal):
def speak(self):
print(f"{self.name} 야옹")
c = Cat("나비")
c.speak() # 나비 야옹
4. 다형성(Polymorphism)
같은 이름의 메서드가 서로 다른 동작을 수행할 수 있음.
animals = [Cat("나비"), Dog("바둑이")]
for animal in animals:
try:
animal.speak()
except AttributeError:
print(f"{animal.name}은 말하지 못해요.")
5. 실전 예제
class Vehicle:
def __init__(self, brand, speed=0):
self.brand = brand
self.speed = speed
def accelerate(self, value):
self.speed += value
print(f"{self.brand} 속도: {self.speed}km/h")
class Car(Vehicle):
def honk(self):
print(f"{self.brand} 빵빵!")
my_car = Car("BMW")
my_car.accelerate(50)
my_car.honk()
6. 설계 팁
- 작게 설계: 한 클래스는 한 가지 역할만
- 상속과 합성의 균형: 불필요한 상속 지양, 필요 시 합성 사용
- 메서드 최소화: 객체 상태 변경과 데이터 접근은 최소화
- 캡슐화:
_속성으로 외부 접근 제한
반응형
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
| [Python] 예외 처리(Exception Handling) 심화 가이드 (0) | 2025.09.10 |
|---|---|
| [Python] 파일 입출력(File I/O) 심화 가이드 (0) | 2025.09.10 |
| [Python] 기초 완벽 정리 – 처음 배우는 사람도 쉽게 이해하는 가이드 (0) | 2025.09.10 |
| [Python] 파이썬(Python)으로 미쓰비시 PLC 제어하기 (0) | 2025.09.09 |
| [Python GUIs] (pythonguis.com) 완전 정리: Python GUI 개발의 시작부터 심화까지 (3) | 2025.08.18 |