Classes and objects
data type은 value와 그 value를 가지고 무언가 할 수 있는 functions을 갖고 있을 때 data type이라고 할 수 있다.
class는 우리가 필요해서 만든 새로운 data type이라고 생각하면 된다!
c의 struct과 컨셉이 동일하다. 물론 여기서의 자료형과 지금의 data type은 다른 개념이지만..
구조체가 왜 필요했는지 기억나는가? 예를 들어 게임 카드가 있다고 했을 때 이 게임 카드 하나의 정보를 저장할 때 가장 효율적일 것 같다는 생각이 구조체가 필요하다고 생각했었다. 마찬가지다. 어떤 학생의 정보를 저장하는 경우 등등 많은 경우에 의해 우리가 이런 data type이 있으면 좋겠다고 여겨지게 된다. 그래서 우린 class 를 정의하는 것이다.
그렇다면 object를 다시 한번 정의해보면
Object is variable of the data type.
A value in memory that is created by the class definition.
Instance (or entity) of the class.
class Student:
id = 0
def __init__(self, name):
Student.id += 1
self.name = name
self.gpa = 0
self.id = Student.id
def compute_gpa(self):
self.gpa = len(self.name) + 0.1
def get_info(self):
return [self.id, self.name, self.gpa]
3. __init__ 의 의미
이 정도만 체크하면 된다.