[Python] 클래스 밖에서 클래스 안에 값을 읽기(데코레이터)

hugingstar·2022년 7월 7일
0
post-thumbnail

개발을 하다보면 클래스 안에서 사용했던 값들을 클래스 밖에서 읽고 싶을 것이다.
그런데, 그냥 불러내면 어처구니 없이 그냥 객체가 출력되는 것을 확인할 수 있다.
이럴 때 값을 읽어낼 수 있도록 하는게 데코레이터이다.

1. 데코레이터(@property)

단순히 데코레이터를 이해할려고 하면 생각보다 시간이 오래 걸린다. 아래의 예제를 통해서 이해도를 높힌다.

우리나라에 설치된 에어컨은 VRF시스템이라고 하는데, 실외기(ODU), 실내기(IDU), 센서 순서로 계층을 이루고 있는데,
VRF 시스템에 대한 다양한 알고리즘을 객체화 할 때는 아래와 같은 구조를 사용하면 다양한 응용이 가능하다.

class VRF_Systems:
    """
    클래스 밖에서 값을 확인하고 싶은 때도 있을 것이다.
    하지만, 밖에서 클래스를 print 해봄
    """
    def __init__(self, Oudoor_unit, Indoor_unit, Sensor_Name):
        self.Oudoor_unit = Oudoor_unit
        self.Indoor_unit = Indoor_unit
        self.Sensor_Name = Sensor_Name

    #데코레이터를 달아야지 클래서 밖에서 Person 클래스를 호출할 때 값이 보인다.
    @property #읽기 전용
    def control_hierarchy(self):
        return self.Oudoor_unit + "/" + self.Indoor_unit + "/" + str(self.Sensor_Name)

person = VRF_Systems("ODU","IND", 1000)
print(person.control_hierarchy)

데코레이터 한방에 이해된다.

0개의 댓글