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
'Python 파이썬' 카테고리의 다른 글
다형성(Polymorphism) (1) | 2023.10.24 |
---|---|
상속, super (0) | 2023.10.24 |
클래스(Class)를 응용해 기능을 구현해보자 (0) | 2023.10.23 |
클래스(Class), 클래스 변수와 객체 변수, __init__ (1) | 2023.10.23 |
클래스(Class), 객체지향 프로그래밍 (1) | 2023.10.23 |