목차
1. 객체지향 프로그래밍
2. 클래스와 인스턴스
1) 클래스 정의
2) 클래스 생성
3) 필드(field)
4) 메서드(method)
5) self: 메서드가 가져야 할 첫 번째 매개변수
6) 인스턴스(instance)
7) 인스턴스의 필드와 메서드
3. 왜 객체지향 프로그래밍인가?
1) 상속
2) 다형성
4. 이후 학습이 필요한 내용
[Review] (7주차) 모듈과 패키지
2023.01.21 - [Development/Python] - [Python] 03 모듈과 패키지 - week.07
1. 객체지향 프로그래밍
Point I
프로그래밍 방식의 전환! 프로그램이 객체와 객체의 상호작용이라면?
Point II
객체(Object) : 성질과 할 수 있는 행동이 담긴 자료
2. 클래스와 인스턴스
Point I
클래스(Class) : 객체를 만들 수 있는 틀
에어컨이 가져야 할 속성 : 희망온도, 바람속도, ...
에어컨이 할 수 있는 행동 : 온도 높이기/낮추기, 바람속도 조절, ...
Point II
클래스 생성 : class 클래스이름:으로 생성
class Aircon:
#Aircon 클래스를 생성
Point III
필드(field) : 객체가 가지고있는 성질 → 변수
class Aircon:
temp = 20 #희망온도 변수
wind_speed = 1 #바람속도 변수
Point IV
메서드(method) : 객체가 할 수 있는 행동 → 함수
class Aircon:
def wind_speed_up(self): #바람속도를 증가시키는 함수
self.wind_speed = self.wind_speed + 1
Point V
self: 메서드라면 가져야하는 첫 번째 매개변수
Q : 왜 self가 필요할까?
A : self는 객체 자신을 의미하며, 메서드가 호출될 때 self 자리에 객체 자신을 인자에 넣음
Point VI
인스턴스(Instance) : 객체를 만드는 틀(클래스)로 만든 객체
Point VII
인스턴스의 생성 : 인스턴스 이름 = 클래스 이름()
crystal = Aircon()
#Aircon의 성질을 가진 객체 crystal 생성
Point VIII
인스턴스의 필드와 메서드 : 인스턴스.field/method 형태로 사용
crystal = Aircon()
print(crystal.temp) #20
print(crystal.wind_speed) #1
crystal.wind_speed_up() #메서드 호출
print(crystal.wind_speed) #2
3. 왜 객체지향 프로그래밍인가?
Point I
기존의 코딩스타일로는 표현할 수 없었던 상황을 표현 가능하게 해줌
Point II
상속 : 한 클래스의 속성을 다른 클래스가 이어받는 것
class Tree:
height = 0
leaf_size = 0
...
class CherryBlossom(Tree): #Tree의 성질을 그대로 계승
height = 25 # 벚꽂나무에 맞게 값을 재조정
leaf_size = 1
# 마치 부모와 자식처럼 코드를 관리 가능
# 현실 세계의 객체 구조와 유사
Point III
다형성 : 같은 이름의 코드가 다양한 역할을 하는 것
class CherryBlossom(Tree):
height = 25
leaf_size = 1
class Mugunghwa(Tree):
height = 1
leaf_size = 5
# 같은 height, leaf_size 변수가 있지만
# class마다 가지는 값이 다름
# 같은 이름으로 각 객체의 값을 관리할 수 있음
4. 이후 학습이 필요한 내용
- 데이터를 효과적으로 담는 방법인 데이터구조나, 문제를 효율적으로 해결할 수 있는 알고리즘
- 데이터분석을 진행하기 위한 기초인 Numpy/Pandas
- 웹사이트의 내용을 정보를 가져오는 데이터 크롤링
- 문자열에서 유의미한 정보를 추출하는 정규 표현식
'Development > Python' 카테고리의 다른 글
[#2 메커니즘] 프라이버시 보호 메커니즘 (0) | 2024.05.18 |
---|---|
[#1 인코딩] 범주형 데이터 처리 (0) | 2024.05.18 |
[Python] 03 모듈과 패키지 - week.07 (0) | 2023.01.21 |
[Python] 02 함수와 메서드 - week.06 (0) | 2022.11.08 |
[Python] 01 기초 자료형 II - week.05 (0) | 2022.09.05 |