오늘은 파이썬이 주제여서 lms를 다들 빨리 끝냈다.
그래서 남는 시간에 퍼실님이 가우시안 함수를 코드로 작성해보라고 하셨다.
그리고 오후 1시간에는 클래스에 대해서 설명해주셨다!😀
솔직히 아직까진 배운 클래스의 전체 개념들이 완전히 이해되지는 않는다..오늘 다시 공부해봐야겠다.
import numpy as np
MU = 0
SIGMA = 1
PI = np.pi
#힌트: 루트는 np.sqrt() 사용, 자연상수는 np.exp() 사용
def gaussian(x, MU, SIGMA):
a = 1 / np.sqrt(2*PI)*SIGMA
b = np.exp(-1*(x - MU)**2/(2*SIGMA**2))
y = a*b
return y
코드는 다 작성을 했는데 numpy가 자꾸 안된다고 나와서 애먹었다.
클라우드 쉘이랑 주피터에 다시 접속하니 됐다.
띠용..😅
인스턴스를 만드는 틀.
클래스를 통해 여러 개의 변수를 관리
클래스
는 붕어빵틀
, 인스턴스
는 붕어빵
이라고 생각하기 !
class FishBread:
price = 500
category = "슈프림"
# 클래스를 통해 생성된 객체는 인스턴스라고 부른다.
fb = FishBread()
fb2 = FishBread()
# fb, fb2는 FishBread 클래스의 인스턴스들이다.
인스턴스
: 클래스를 통해 생성된 객체
멤버변수
: 클래스 내부에 속한 변수
init 함수 생성자
: 인스턴스를 생성할 때 가장 먼저 호출하는 함수.
멤버변수들을 초기화하는 역할 (이전에 멤버변수를 선언했을 때)
self
: 변수나 함수가 이 클래스 내부에 속하는 것을 말함
메소드
: 클래스 내부의 멤버함수를 의미 (클래스 내부에 정의된 함수)
setter
: 멤버변수를 새로 할당하는 메소드
getter
: 멤버변수를 반환하는 메소드
isinstance()
: 주어진 인스턴스가 특정 클래스/데이터타입인지 검사해주는 함수
class MakeFishBread:
# 멤버변수 : 클래스 내부에 속한 변수.
price = None # public 멤버변수
category = None
__password = None # __가 붙으면 private 멤버변수
# init 함수 생성자 : 인스턴스를 생성할 때 가장 먼저 호출하는 함수
# self 키워드 : 변수나 함수가 이 클래스 내부에
# 속하는 것을 말합니다.
# 생성자는 멤버변수들을 초기화하는 역할을 한다.
def __init__(self, price, category, password):
self.price = price
self.category = category
self.__password = password
# 메소드 : 클래스 내부의 멤버함수를 의미한다.
# 멤버변수를 새로 할당하는 메소드를 setter라고 한다.
# 멤버변수를 반환하는 메소드를 getter라고 한다.
def set_price_and_category(self, price, category):
self.price = price
self.category = category
def get_password(self, password):
if password == self.__password:
return self.__password
else:
return "비밀번호가 틀렸습니다. "
bread1 = MakeFishBread(500, "팥", 1234)
# . 멤버접근연산자
print(bread1.price)
print(bread1.category)
print(isinstance(bread1, MakeFishBread))
print(isinstance(bread1, int))
# 결국 bread1이라는 인스턴스는 MakeFishBread라는
# 자료형으로 생각할 수 있다
print(type(bread1))
print(bread1.price)
bread2 = MakeFishBread(700, "슈프림", 1234)
#bread2.__password
bread2.get_password(1020)
bread2.get_password(1234)
- 클래스 완성하기
- 인스턴스 만들기
- 메소드를 이용해 id, pw를 변경해보기
class Student:
# __id = None
# __pw = None #private
# name = None
def __init__(self, __id, __pw, name):
self.__id = __id
self.__pw = __pw
self.name = name
def get_id(self):
return self.__id
def get_pw(self):
return self.__pw
def set_id(self, __id):
self.__id = __id
def set_pw(self, __pw):
self.__pw = __pw
student1 = Student("asdf", 1234, "김국진")
print(student1.get_id())
print(student1.get_pw())
print("--- 변경 후 ")
student1.set_id("fdsa")
student1.set_pw(4321)
print(student1.get_id())
print(student1.get_pw())
멤버변수, 멤버접근 연산자, 인스턴스, 생성자, 메소드, setter, getter