ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.