프로퍼티

프랭크 IT·2024년 8월 14일

프로퍼티란 무엇일까?

먼저, @property가 무엇인지부터 알아보자.

속성과 메서드

  • 속성: 객체의 상태나 데이터를 담고 있는 변수. 예를 들어, 사람이라는 객체가 있다면 "이름", "나이" 같은 것이 속성이 될 수 있어.
  • 메서드: 객체가 할 수 있는 행동을 나타내는 함수. 예를 들어, 사람이라면 "걷기", "말하기" 같은 게 메서드가 될 수 있지.

보통 속성은 object.attribute 형식으로 접근하고, 메서드는 object.method() 형식으로 호출해.

프로퍼티(@property)는 뭐야?

@property는 속성처럼 보이지만 사실은 메서드인 경우에 사용해. 이걸 통해 속성처럼 보이는 메서드를 만들 수 있어. 왜 이런 걸 할까? 속성에 접근할 때마다 어떤 계산을 하거나, 특별한 처리를 하고 싶을 때 유용해.

예시

@property
def Type(self):
    return self._Type

여기서 Type은 속성처럼 보이지만, 사실은 메서드야. 그런데 이 메서드에 @property를 붙이면, 이제 이걸 속성처럼 사용할 수 있어.

어떻게 동작할까?

  • 만약 Type이 메서드라면 object.Type()처럼 호출해야 해.
  • 하지만 @property를 붙이면, 이제 object.Type으로 속성처럼 사용할 수 있어. 마치 object.name이나 object.age처럼 말이야.
# 사용 예시
obj = SomeClass()
print(obj.Type)  # 마치 속성처럼 Type에 접근할 수 있어

여기서 print(obj.Type)를 호출하면, 사실은 Type이라는 메서드가 실행되고, 그 결과가 출력되는 거야.

요약

  • @property는 속성처럼 보이지만, 사실은 메서드인 것.
  • @property를 사용하면, 객체의 데이터를 읽는 것처럼 보이지만 실제로는 코드를 실행할 수 있어.
  • 이런 방식으로 데이터를 안전하게 관리하고, 필요할 때 계산을 하거나 조건을 추가할 수 있어.
profile
AWS, Vue, Java, flutter, Mongodb, Python, Git , EKS, Docker, 독서, 영어, 에어로빅, 자전거, 농구, 바둑, 풋살, 복싱, Guitar, 글쓰기, 랭체인

0개의 댓글