Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |
Tags
- 데이터베이스
- spring
- java
- oracle
- 오라클
- 서버
- 알고리즘
- 코드 테스트
- 프런트엔드
- 프론트엔드
- 백엔드
- 정리
- web
- SQL
- 코드테스트
- 자바스크립트
- 스프링부트
- jpa
- 프로그래머스
- 미니정리
- Next.js
- 디자인 패턴
- 자바
- 스프링
- BACK-END
- 쿼리
- JavaScript
- jsp
- MySQL
- node.js
Archives
- Today
- Total
참치코더의 꿈 메모장
Python / 클래스(Class) 정리 본문
728x90

클래스(Class)
- 클래스는 객체(Object)를 만들기 위한 설계도다. 현실 세계의 사물을 코드로 표현할 때,
속성(변수) -> 상태, 메서드(함수) -> 행동을 하나로 묶은 개념이다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Person: # 클래스 선언
def __init__(self, name, age): # 생성자(객체 생성 시 자동 실행), self: 자기 자신(객체) 참조
self.name = name # 객체의 속성
self.age = age
def introduce(self):
print(f"안녕하세요, 저는 {self.name}이고 {self.age}살입니다.")
# 객체 생성
p1 = Person("철수", 20)
p1.introduce()
|
cs |
self는 왜 필요할까?
- self는 객체 자기 자신을 가리키는 참조 변수다.
- self 덕분에 같은 클래스라도 다른 상태를 유지할 수 있다.
|
1
2
3
4
5
6
7
8
9
10
11
|
class Student:
school = "Python School" # 클래스 변수
def __init__(self, name):
self.name = name # 인스턴스 변수
s1 = Student("민수")
s2 = Student("지수")
print(s1.school) #Python School
print(s2.school) #Python School
|
cs |
상속(Inheritance)이란?
- 기존 클래스를 재사용해서 새로운 클래스를 만드는 것
부모 클래스(기본 클래스) -> 자식 클래스(파생 클래스)
|
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
class Animal:
def speak(self):
print("소리를 냅니다.")
class Dog(Animal):
def bark(self):
print("멍멍!")
dog = Dog()
dog.speak() # 부모 클래스 메서드 사용
dog.bark() # 자식 클래스 메서드
# Dog 클래스는 Animal의 기능을 그대로 물려받음
# 메서드 오버라이딩 (Override)
# 부모 클래스의 메서드를 자식 클래스에서 재정의
class Animal:
def speak(self):
print("동물이 소리를 냅니다.")
class Cat(Animal)
def speak(self):
print("야옹")
cat = Cat()
cat.speak() # 야옹
# 같은 메서드 이름이라도 자식 클래스가 우선이다.
# super() - 부모 클래스 호출
# 부모 기능을 유지하면서 확장하고 싶을 때 사용
class Animal:
def speak(self):
print("동물 소리")
class Dog(Animal):
def speak(self):
super().speak()
print("멍멍")
dog = Dog()
dog.speak() # 동물소리, 멍멍
# 생성자 상속
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
dog = Dog("초코", "푸들")
# 부모 생성자는 자동으로 호출되지 않는다 -> super()
|
cs |
다형성(Polymorphism)
- 같은 메서드 이름이지만 객체에 따라 다른 동작을 한다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
print("멍멍")
class Cat(Animal):
def speak(self):
print("야옹")
animals = [Dog(), Cat()]
for a in animals:
a.speak()
|
cs |
상속을 사용할 때 주의점
- 단순 코드 재사용 목적으로 사용하면 안된다.
- 관계가 "is-a"가 아닐 때 사용하면 안된다.
좋은 상속 기준
- 공통 책임과 역할이 명확할 때 사용한다.
- 행위(메서드)를 공유할 때 사용한다.
728x90
'파이썬' 카테고리의 다른 글
| Python / 파이썬 flask 웹 서버 연결(feat. 노마드 코더) (0) | 2026.01.17 |
|---|---|
| 노마드 코더 / 파이썬 remoteok 스크래핑 하기 코드 작성 (0) | 2026.01.12 |
| Python / Dictionary 정리 (0) | 2026.01.07 |
| Python / 파이썬 리스트(List)와 튜플(Tuple) 정리 (0) | 2026.01.06 |
| Python / f-string 정리 (1) | 2026.01.04 |
Comments