티스토리 뷰

python lecture/basic

[edy] property (프로퍼티)

burningrizen 2019. 3. 26. 10:14


파이썬에서는 클래스 캡슐화에 필요한 접근지정자를 잘 안쓰는 편이다. 


어떤 부분에서는 public 을 권장하는 느낌도 든다. public 이 훨씬 편하기 때문이다. 

(예를들어 시작은 그냥 public 변수를 사용하게 하다가 먼가 제약이 필요할 때 쯤이면 아래 공부할 @property 등으로 처리한다 ) 제약보다는 자유도/책임감을 높히는 방향의 언어인 파이썬 답다. 


먼저 말해두는데 파이썬에서 접근지정자는 없다. 즉 아래와 같이 코딩해도 에러가 안난다는 뜻이다


java 의 get, set 을 아래처럼 표현할 수 있다.



class User:
def __init__(self):
self._color = None

@property
def color(self):
return self._color

@color.setter
def color(self, color):
self._color = color


if __name__ == '__main__':
u = User()
u.color = 'red'
print(u.color)

댓글