하얀설표 블로그




해결)AttributeError: property '<moduls>' of '<class>' object has no setter





( 수정됨)


에러

에러 예시

class seolpyo:
    def __init__(self) -> None:
        self.__name = '하얀설표'
    @property
    def name(self):
        return self.__name
    def call(self):
        print(f'self.__name : {self.__name}')
        print(f'self.name : {self.name}')
if __name__ == '__main__':
    a = seolpyo()
    a.call()
    a.name = '설표'
    a.call()

>> self.__name : 하얀설표
self.name : 하얀설표
Traceback (most recent call last):
  File "c:\seolpyo\example.py", line 13, in <module>
    a.name = '설표'
    ^^^^^^
AttributeError: property 'name' of 'seolpyo' object has no setter

해결방법

setter를 추가하거나 getter에서 사용하는 변수값을 변경한다.

설명

예시 코드를 기준으로 하면 self.name은 변수가 아닌 프로퍼티로 제공되는 getter이다.
setter가 없는데 setter를 사용하려한 것이 문제이기 때문에 getter에서 사용하는 변수를 찾아 변수값을 변경하거나 setter를 추가해야 한다.
프로퍼티에 관한 설명은 이 글에서 확인할 수 있다.


공감 : 0







white.seolpyo.com