Pytorch 강의를 듣는데 아직도 클래스를 왜 쓰는지 모르겠다
더 강의가 진행되기 전에 완벽하게 이해하고 넘어가야지
class Person:
""" Supper Class"""
# 클래스 변수
total_count = 0
# 생성자 메서드
def __init__(self):
self.name = '홍길동'
self.age = 1
Person.total_count += 1
# class내 정의된 함수(method)
def introduce(self):
print(f'제 이름은 {self.name} 이고, 나이는 {self.age} 살 입니다.')
class Student(Person):
""" Sub Class"""
def __init__(self):
super().__init__()
객체지향의 주요 특징인 추상화,캡슐화,상속,메소드오버라이딩 등의 장점이 있어 편리함
간단한 구현은 함수형이 편리
상속(inheritance)
- 부모 클래스에 정의된 다양한 메서드, 클래스 변수를 그대로 활용할 수 있다
-> 객체를 생성할 때 초기 상태를 설정하거나 필요한 초기화 작업을 수행하기 위해서이다.
1. 초기화 작업
2. 객체의 일관성 보장
class BankAccount:
def __init__(self,balance = 0):
if balance < 0:
raise ValueError("Balance cannot be negative")
self.balance = balance
iniitalize를 표현하는 구문 즉, 기본값을 설정하기라고 이해하자
Class Calc:
def __init__(self,a,b):
Calc.x = a
Calc.y = b
def plus(Calc):
return Calc.x - Calc.y
def minus(Calc):
return Calc.x - Calc.y
def multiply(Calc):
return Calc.x * Calc.y
def divide(Calc):
return Calc.x / Calc.y
init 에서 첫번째로 들어가는 변수면은 스스로를 지칭
i = Calc(2,3)
Calc(2,3)은 Calc 클래스에 숫자 2,3 입력된 무언가 -> 객체(object)
이때 객체 i를 Calc의 인스턴스라고 한다
실질적인 주요 변수인 a,b를 클래스 전체가 사용할 수 있도록 만들기 위해서
클래스형과 함수형의 가장 큰 차이점은 동일한 함수를 다른 변수명으로 여러번 호출해야하는 경우가 생긴다면 클래스형은 함수 한 번으로 여러번 호출 가능
함수형은 호출시마다 함수를 계속 새로 호출해주어야 한다
아직도 init 함수와 self가 와닿지는 않는다 그래서
쓰다보면 완전히 이해하는 날이 오지 않을까
https://wikidocs.net/28 이것도 읽어봐야지
https://www.youtube.com/watch?v=NsRp_Px3GKA
https://writingstudio.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%ACPython-%ED%81%B4%EB%9E%98%EC%8A%A4class-%EC%95%88-def-initself-%EC%99%80-self-%EB%93%B1%EC%9D%84-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0