알고리즘 계속해서 썰풀겠다.
소녀시대 숙소 생각
화물차 생각
클래스는 분류, 집합 같은 것으로 객체를 총칭하는 개념이다.
객체는 세상에 존재하는 사물들...
예를들면 클래스가 사람이라면 객체는 유재석, 강호동
동물이라면 강아지, 고양이, 등등...
같은 속성과 기능을 가진 객체들을 묶어서 정의할수 있음.
파이썬에서 생성자 함수의 이름은 무조건 init 으로 고정되어 있다.
생성자는 생성시에 호출되는 함수이므로 아래처럼 Person 을 생성하기만 해도 hihihi 와 self 가 동시에 출력된다.
self 는 객체 자기 자신을 가리킨다.
따라서, 파라미터를 따로 넣을 필요없이 그냥 호출하면 알아서 self에 자기자신을 넣어준다.
class Person:
def __init__(self):
print("hihihi", self)
person_1 = Person() # hihihi <__main__.Person object at 0x1067e6d60> 이 출력됩니다!
person_2 = Person() # hihihi <__main__.Person object at 0x106851550> 이 출력됩니다!
class Person:
def __init__(self, param_name):
print("hihihi", self)
self.name = param_name
person_1 = Person("유재석") # hihihi <__main__.Person object at 0x1067e6d60> 이 출력됩니다!
print(person_1.name) # 유재석
person_2 = Person("박명수") # # hihihi <__main__.Person object at 0x106851550> 이 출력됩니다!
print(person_2.name) # 박명수
self 를 사용해서 객체에 데이터를 쌓을 수가 있다.
self.name 에 param_name 을 저장해두겠다는 건
그 객체의 name 이라는 변수에 저장된다는 의미!
class Person:
def __init__(self, param_name):
print("hihihi", self)
self.name = param_name
def talk(self):
print("안녕하세요 저는", self.name, "입니다")
person_1 = Person("유재석") # hihihi <__main__.Person object at 0x1067e6d60> 이 출력됩니다!
print(person_1.name) # 유재석
person_1.talk() # 안녕하세요 저는 유재석 입니다
person_2 = Person("박명수") # # hihihi <__main__.Person object at 0x106851550> 이 출력됩니다!
print(person_2.name) # 박명수
person_2.talk() # 안녕하세요 저는 박명수 입니다
Person 이라는 클래스에 함수를 한 번 추가!
참고로, 클래스 내부의 함수는 메소드(method) 라고 부른다.
talk 라는 메소드를 만들어 보면,
각 객체의 변수를 사용해서 메소드를 구현할 수 있다.
이렇게 클래스 이용하면 연관성 있는 데이터들을 클래스 내에 관리할수 있으며
다양한 객체들을 쉽게 생성할 수 있게 된다.