객체지향 프로그래밍의 핵심 - 클래스
클래스 - 요 및에 요소들은 이 규칙을 따를 것 - 속성(attributes)<객체의 데이터> ,메서드(method) <객체의 동작>로 구성됨
객체 - 클래스의 요소들(instance)(ex 클래스가 동물이면 객체는 강아지 고양이 등)
class Ai_student:
def __init__(self,input_name):
self.name= input_name
def greet(self):
print("hello my name is",self.name)
def test(self):
print("hello")
위와 같이 __init__(객체 구성 요소?)
self 자리는 반드시 self는 아니고 보기 좋게 하려고 self 넣은 것임.다른 것 넣어도 상관 없음
객체 지향 프로그래밍의 핵심개념
캡슐화 - 비공개속성 (객체의 속성과 메서드를 하나로 묶고, 일부를 외부에 감추어 객체 내부의 구현을 숨기는 원칙, 무결성보호, 외부에서의 직접접근 차단)
상속 - 동물이라는 클래스 안에 강아지라는 클래스를 포함시키는 것(부모클래스(기존클래스)를 기반으로 자식클래스(새로운 클래스)를 만드는 방법, 상속을 통해 부모 클래스의 속성과 메서드를 자식이 물려받아 사용가능,확장,수정 가능
다형성-클래스 내에 동일한 이름의 메서드가 각각 따로 동작함
추상화-아직 잘 모르겠음. (필요한 부분만 보여주고, 나머지는 감추는 원칙, 내부구현에 신경쓰지 않고 필요한 인터페이스만 사용)
PyTorch와 nn.module - - PyTorch에서의 클래스 사용,nn.Module 클래스를 상속받아 신경망 정의,이를통해 딥러닝 모델을 구성
super -> 자식클래스에서 부모클래스 사용하고 싶을 경우 사용