728x90
반응형
목차
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

 

[Python] 03 모듈과 패키지 - week.07

목차 1. 모듈 - 변수와 함수, 코드를 모아둔 하나의 .py파일 1) 모듈 불러오기 - import ① math: 수학 연산 ② random: 랜덤한 숫자를 선택 2) 모듈 사용하기 - . + 모듈 속 함수/변수 3) 모듈 만들기 - .py 확

sarahee.tistory.com


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
  • 웹사이트의 내용을 정보를 가져오는 데이터 크롤링
  • 문자열에서 유의미한 정보를 추출하는 정규 표현식

 

728x90
728x90

+ Recent posts