본문 바로가기

Python 파이썬

세터,게터 (Setter, Getter)

728x90

세터와 게터에 대해 알아보자!

Setter, Getter은 객체의 속성을 설정하고 반환 할 수 있는 기능이다!

# Setter -> 객체에 속성을 설정하는 역할 의 메서드
# Getter -> 객체의 속성을 반환하는 역할 의 메서드
class Point: # 기본적인 Setter, Getter
    def __init__(self, x, y):
        self.__x = x # 던더 정보은닉, 직접 접근 힘듬
        self.__y = y
       
    def setX(self , x):       # 세터
        self.__x = x
       
    def setY(self , y):
        self.__y = y
       
    def getX(self):            # 게터
        return self.__x
       
    def getY(self):
        return self.__y

p1 = Point(10,20)
print(p1.getX(), p1.getY())     # 지정한 10,20 으로 출력
p1.setX(100)                          # set 으로 값을 새로 지정
p1.setY(200)   
print(p1.getX(), p1.getY())     # 값이 100, 200 으로 출력


# 파이썬 데코레이터 사용. -> 간단한 사용성.
class Point1:
    def __init__(self, x, y):
        self.__x = x
        self.__y = y
    @property # @데코레이터
    def x(self):
        return self.__x
    @property
    def y(self):
        return self.__y
    @x.setter # @세터 데코레이터
    def x(self, x):
        self.__x = x
    @y.setter
    def y(self, y):
        self.__y = y
       
p1 = Point1(10,20)
print(p1.x, p1.y)   # p1.getx() 처럼 Getter의 형식이 없이 사용 가능.
p1.x = 100          # 위에 데코레이터로 만든 세터로 따로 형식 없이 사용가능.
p1.y = 200
print(p1.x, p1.y)
728x90