BackEnd/Python
python에서 private로 처리 하고 싶다면? @Property
Sh.TK
2018. 1. 31. 20:04
참조: http://hamait.tistory.com/827
Python에서는 Protected와 Private에 대한 개념이 없다.
그래서 __변수명(private), _변수명(protected)와 같은 방식으로 개발자끼리 약속하여 변수명을 지정한다.
그러다보니 변수값 설정할 때, 특정 범위를 넘어가면 에러가 발생하도록 처리할 수 없을 것이다.
이를 구현하기 위한 것이 @Property 이다.
아래와 같은 방식으로 구현하여 특정 변수값에 제한을 둔다.
class Celsius:
def __init__(self):
pass
def to_fahrenheit(self):
return (self._temperature * 1.8) + 32
@property
def temperature(self):
print("Getting value")
return self._temperature
@temperature.setter
def temperature(self, value):
if value < -273:
raise ValueError("Temperature below -273 is not possible")
print("Setting value")
self._temperature = value