본문 바로가기

데이터사이언스/파이썬 기초

클래스란?(객체, 인스턴스, 속성, 메서드, 생성자 등)

파이썬 프로그램은 패키지, 모듈, 클래스, 함수로 구성된다. 함수→클래스→모듈→패키지로 그 묶음의 크기는 커진다.

 

어떤 하나의 기능을 구현하는데 여러개의 함수가 필요할 때가 있다. 이때 데이터와 세부적인 기능을 수행하는 함수들을 묶어서 구현할 수 있는데 이때 기본적으로 사용되는 것이 클래스이다. 클래스는 상속 등의 다양한 기능을 통해 프로그램의 복잡도를 감소시켜주며 확장에 매우 유리하게 작용한다. 또한 중요한 변수를 클래스에 넣어 외부의 변수들과 혼동 될 위험을 줄여준다.

 

※용어정리

 - 클래스: 제품의 설계도

 - 객체: 설계도로 만든 제품

 - 속성: 클래스안의 변수

 - 메서드: 클래스안의 함수

 - 생성자: 객체를 만들 때 실행되는 함수

 - 인스턴스: 메모리에 살아있는 객체(객체안에 포함된 개념)

 

'''
class 클래스 이름:
    def 메서드이름(self): #한상 self를 매개변수로 가짐
        명령블록
            
객체 = 클래스이름() #객체는 ~클래스로만들었다
객체.메서드() #객체의 메서드 호출
'''
        
class Monster:
    def __init__(self, name): #생성자 함수와 매개변수(self, 속성값)
        self.name = name  #name이라는 속성은 __init__()로부터 받은 name으로 할당하겠음
        
    def say(self):
        print(f'나는 {self.name}')
        
shark = Monster('상어') #생성자함수의 self자리에 shark가 들어가고 name자리에 '상어'가 들어간다 
shark.say() #shark의 say메서드

wolf = Monster('늑대') #생성자 함수의 self자리에 wolf가 들어가고 name자리에 '늑대'가 들어간다
wolf.say() # 나는 늑대다 가 출력