2023.01.06 (금) 파이썬 5번째 강의를 들었습니다.
[Python 문법 5]
오늘은 오늘은 class에 대해서 더 부가적인 개념을 배우는 시간이었습니다.
1. Getter, Setter : 객체의 내부 변수에 접근할 때, 특정 메서드를 거쳐서 접근할 수 있도록 하는 방법
(자동차 부품을 사용자가 마음대로 바꿀 수 있게 하면 고장이 나니까, 제한을 걸어주는 것으로 생각)
class Person:
def __init__(self, name, pw):
self.name = name
self.pw = pw
person = Person('peter', 'abcd')
person.pw = 'qwer'
person.pw
게터, 세터를 이용해서 제한을 걸어보자.
내용을 입력하세요.
2. method 종류 (3가지) : 인스턴스 메서드, 클래스 메서드, 스태틱 메서드
구분
|
형태
|
특징
|
인스턴스 메서드
|
파라미터 self
|
객체를 이용하여 메서드 호출
|
클래스 메서드
|
파라미터 cls
|
클래스를 이용하여 메서드 호출
(객체로 생성된 초기 변수값을 모두 수정) |
스태틱 메서드
|
파라미터 X
|
객체를 선언하지 않고 메서드 호출
|
내용을 입력하세요.
3. 클래스 설계 (is a, has a)
- is a : A is a B (상속을 이용해서 클래스 설계)
- has a : A has a B (객체를 객체에 넣어서 클래스 설계)
-두 가지 방법을 혼용해서 사용
# [1] is a
class Info:
def __init__(self, name, email):
self.name = name
self.email = email
class Person(Info): #상속
def __init__(self, name, email):
self.name = name
self.email = email
person = Person('peter', 'peter@gmail.com')
person.name, person.email
# [2] has a
class Name:
def __init__(self, name):
self.name_str = name
class Email:
def __init__(self, email):
self.email_str = email
class Person:
def __init__(self, name_obj, email_obj):
self.name = name_obj
self.email = email_obj
def show(self):
print(self.name.name_str, self.email.email_str)
name_obj = Name('peter')
email_obj = Email('peter@gmail.com')
person = Person(name_obj, email_obj)
person.show()
4. 입력, 출력 (input, output)
- RAM에 있는 내용을 SSD(HDD)에 저장 또는 SSD(HDD)에 있는 내용을 RAM에 저장
- RAM에서 직렬화를 해서 SSD로 (거의 사용하지 않음)
- pickle을 사용해서 입출력을 한다 (직렬화를 자동으로 해주며, 입출력 속도가 빠르다)
- 어떻게 사용되는지
*입출력을 사용하지 않았을 때 문제점
-학습 데이터를 가지고 모델링을 함 (시간이 오래 걸림, 8h이라고 가정) -> 모델객체 생성 -> 예측할 수 있음
-모델객체는 메모리에 존재 (그냥 컴퓨터 끄면, 다시 사용할 수 없음, 다시 8h씩 학습시켜야 함)
*입출력을 사용했을 경우
-학습 데이터 -> 모델링(학습) -> 모델객체(RAM) ->모델저장(SSD) -> 예측
-모델로드(SSD -> RAM)해서 예측하면 됨 (약 5분정도 시간)
'AI School 8기 (LIKELION, 22.12~23.05)' 카테고리의 다른 글
[AI School-TIL] SQL(BigQuery) 2일차_23.01.20 (0) | 2024.12.11 |
---|---|
[AI School-TIL] SQL(BigQuery) 1일차_23.01.13 (2) | 2024.12.11 |
[AI School/TIL] Python 4일차_23.01.05 (0) | 2024.02.23 |
[AI School/TIL] Python 3일차_23.01.04 (0) | 2024.02.23 |
[AI School/TIL] Python 2일차_23.01.03 (0) | 2024.02.23 |