개발 블로그

[Python]클래스 본문

카테고리 없음

[Python]클래스

draidev 2022. 3. 22. 21:24

클래스를 예로 들때 주로 붕어빵틀을 예로 듭니다.

매번 붕어빵을 손으로 만드려면 시간도 힘도 많이 들겠죠?? 

그래서 우리는 붕어빵틀을 만들고 재료를 준비해서 붕어빵틀에 넣고 여러개의 붕어빵을 찍어냅니다.

 

클래스도 마찬가지입니다. 클래스라는 붕어빵틀을 만들고 붕어빵틀로 객체라는 붕어빵을 손쉽게 찍어내는 것이죠.

또한 만들어진 붕어빵들은 각각의 붕어빵들과는 다른, 서로 영향을 주지 않는 개개의 객체입니다.

 

그럼 클래스를 한 번 만들어볼까요??

class Cage: # 클래스 X를 상속할 때에는 : class Cage(X):
	
    # 클래스 선언 후 객체가 메소드를 호출할 때 메소드를 호출한 객체 자신이 첫번째 인자로 함께 전달된다. 
    def print_something(self):
        print("This is something!")

클래스를 위와 같이 정의해 줬다면, 클래스를 변수에 대입해줌으로써 여러 개의 클래스 객체들을 만들어 낼 수 있습니다.

cage_1 = Cage()  # cage_1이라는 클래스 객체 생성
cage_1.print_something()  # 출력 : This is something!

 

다음으로 생성자에 대해 알아보겠습니다.

생성자는 객체가 생성될때의 초깃값을 설정해야 할때 사용합니다. 생상자(Constructor)란 객체가 생성될 때 자동으로 호출되는 메서드를 의미합니다.

Python 메서드 이름으로 __init__을 사용하면 생성자가 됩니다. 

# 클래스를 따라 객체변수를 만들 때 처음부터 데이터가 담겨있기를 원한다면 생성자를 사용
class Cage:
    
    # 생성자(Constructor), 클래스라는 설계도를 따라 객체를 만들 때 초기화값
    def __init__(self, animal):
        self.animals = ['Cat', 'Dog', 'Tiger']
    
    def check_animals(self):
        print(self.animals) # self 키워드를 통해 함수의 scope를 뛰어넘어 접근이 가능합니다.
        
    def plus_animal(self, animal):
        self.animals.append(animal) # 리스트에 item 추가하기
        print(self.animals)
cage_2 = Cage()  # cage_2객체 생성

cage_2.plus_animal('Pig')  # 출력 : ['Cat', 'Dog', 'Tiger', 'Pig']

 

Comments