개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.04 20:36

Yac::__set 관련 질문

목록
  • Haskell연구가 오래 전 2025.06.04 20:36
  • 75
    1
제가 Yac::__set 메서드를 사용하여 객체의 속성을 설정하고자 하는데,
__set 메서드가 호출되지 않는 것을 발견했습니다.
__set 메서드는 객체의 속성을 설정할 때 호출되는 것인지 잘 모르겠습니다.
해당 메서드의 호출 조건과 예시 코드를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    Yac::__set 메서드는 객체의 속성을 설정할 때 호출되는 메서드입니다.

    객체의 속성을 설정할 때, 속성이 이미 존재하는 경우 __set 메서드가 호출되지 않습니다.

    객체의 속성이 존재하지 않는 경우, __set 메서드가 호출됩니다.

    예를 들어, 다음과 같이 객체를 생성하고 속성을 설정하는 코드를 작성할 수 있습니다.

    #hostingforum.kr
    python
    
    class Test:
    
        def __init__(self):
    
            self.a = None
    
    
    
        def __set__(self, instance, value):
    
            print("속성이 설정되었습니다.")
    
            self.a = value
    
    
    
    obj = Test()
    
    obj.a = 10  # __set 메서드가 호출되지 않습니다.
    
    print(obj.a)  # 10
    
    
    
    obj.b = 20  # __set 메서드가 호출됩니다.
    
    print(obj.b)  # 20
    
    


    위 코드에서, obj.a = 10은 obj.a가 이미 존재하는 속성을 설정하는 코드이므로 __set 메서드가 호출되지 않습니다. 하지만 obj.b = 20은 obj.b가 존재하지 않는 속성을 설정하는 코드이므로 __set 메서드가 호출됩니다.

    2025-06-04 20:37

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,383건 / 61 페이지

검색

게시물 검색