-
[Python] 23. 클래스(class)Programming/Python 2021. 7. 25. 15:05
[1] 클래스 사용 이유
puppy_name = "happy" puppy_age = 3 puppy_leg = 4 puppy_color = "흰색" cat_name = "beauty" cat_age = 6 cat_leg = 4 cat_color = "검은색" print(f"저의 반려동물 이름은 {puppy_name}, 나이는 {puppy_age}, 다리 수는 {puppy_leg}, 털 색은 {puppy_color}입니다.") print(f"저의 반려동물 이름은 {cat_name}, 나이는 {cat_age}, 다리 수는 {cat_leg}, 털 색은 {cat_color}입니다.")
저의 반려동물 이름은 happy, 나이는 3, 다리 수는 4, 털 색은 흰색입니다. 저의 반려동물 이름은 beauty, 나이는 6, 다리 수는 4, 털 색은 검은색입니다.
- 위 코드는 일반적이 변수 할당 후, print문을 통해 출력하는 코드이다.
- 반려동물로 키우는 강아지와 고양이에 대한 변수는 공통적인 부분이 많지만, 위와 같이 코드를 구성하는 것은 효율적이지 않다.
- 이와 같은 경우, 즉 자료와 변수를 효율적으로 정리하고 관리하기 위해 클래스(class)를 사용한다.
[2] 클래스의 사용
class pet : def __init__(self, name, age, leg, color) : self.name = name self.age = age self.leg = leg self.color = color def show(self) : print(f"저의 반려동물 이름은 {self.name}, 나이는 {self.age}, 다리 수는 {self.leg}, 털 색은 {self.color}입니다.") puppy = pet("happy", 3, 4, "흰색") cat = pet("beauty", 4, 4, "검은색") puppy.show() cat.show()
저의 반려동물 이름은 happy, 나이는 3, 다리 수는 4, 털 색은 흰색입니다. 저의 반려동물 이름은 beauty, 나이는 4, 다리 수는 4, 털 색은 검은색입니다.
- 위 코드는 [1]의 코드를, 클래스를 통해 재구성한 것이다.
- 클래스의 선언과 정의, 그리고 사용은 위와 같다.
- self는 '자기 자신'을 의미한다. self.name, self.age, self.leg, self.color는 흔히 멤버변수라고 칭한다. 멤버변수란, 클래스 내에서 사용되는 변수를 의미한다.
- puppy와 cat은 '객체'라고 흔히 표현하며, class pet의 '인스턴스'라고 칭한다.
① def __init__(self, name, age, leg, color)
클래스의 정의엔 위와 같은 구문이 대부분 들어간다. 함수와 비슷해 보이지만, 특별한 기능을 한가지 하기에 '생성자'라고 일반적으로 부른다. 생성자란, class가 호출되었을 때 가장 먼저 실행되는 구문을 의미한다. 이러한 기능때문에, 생성자는 클래스 내에서 변수를 할당하는 역할을 수행한다.
② def show(self)
클래스 내에서 정의하는 함수이다. 흔히 메소드(method)라고 칭한다.
[3] 특정 객체에 대한 변수 선언
class pet : def __init__(self, name, age, leg, color) : self.name = name self.age = age self.leg = leg self.color = color def show(self) : print(f"저의 반려동물 이름은 {self.name}, 나이는 {self.age}, 다리 수는 {self.leg}, 털 색은 {self.color}입니다.") puppy = pet("happy", 3, 4, "흰색") cat = pet("beauty", 4, 4, "검은색") puppy.show() cat.show() cat.scar = True if cat.scar == True : print("저의 고양이는 흉터가 있습니다.")
저의 반려동물 이름은 happy, 나이는 3, 다리 수는 4, 털 색은 흰색입니다. 저의 반려동물 이름은 beauty, 나이는 4, 다리 수는 4, 털 색은 검은색입니다. 저의 고양이는 흉터가 있습니다.
- 파이썬에선, 클래스 외부에서 특정 객체에 대한 변수를 따로 선언해줄 수 있다.
- 위 코드의 cat.scar이 예시이다.
*본 글은 코딩 유튜버 '나도코딩'님의 무료강의를 바탕으로 내용을 정리 및 추가한 글입니다.
https://www.youtube.com/watch?v=kWiCuklohdY&t=5934s
'Programming > Python' 카테고리의 다른 글
[Python] 25. pass와 super, isinstance() (0) 2021.07.25 [Python] 24. 상속 (0) 2021.07.25 [Python] 22. with (0) 2021.07.20 [Python] 21. 피클(pickle) (0) 2021.07.20 [Python] 20. 파일 입출력 (0) 2021.07.20