FUNDAMENTAL | 04-2. Gaussian function, class

yeonk·2021년 9월 11일
0

aiffel-ai-bootcamp

목록 보기
9/38
post-thumbnail

20210910

오늘은 파이썬이 주제여서 lms를 다들 빨리 끝냈다.
그래서 남는 시간에 퍼실님이 가우시안 함수를 코드로 작성해보라고 하셨다.
그리고 오후 1시간에는 클래스에 대해서 설명해주셨다!😀

솔직히 아직까진 배운 클래스의 전체 개념들이 완전히 이해되지는 않는다..오늘 다시 공부해봐야겠다.



Gaussian function

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)

인스턴스를 만드는 틀.
클래스를 통해 여러 개의 변수를 관리

클래스붕어빵틀, 인스턴스붕어빵이라고 생각하기 !

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)



연습 문제

  1. 클래스 완성하기
  2. 인스턴스 만들기
  3. 메소드를 이용해 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

0개의 댓글