객체 지향 프로그래밍의 4개의 기둥캡슐화객체의 메소드를 통해 변수 접근하기 I

Q

캡슐화하고 이를 사용할 때 나타나는 에러들

조회 482

좋아요 0

2022년 7월 1일

A
1개의 답변이 있어요
2022년 7월 3일

댓글 2

2022년 7월 11일
"Circle 클래스의 인스턴스 메소드에서 사용한 게 아니라 그냥 실행문 쪽에서 작성한거라면 접근이 불가능한 변수이기 때문에 AttributeError가 발생할 수 있습니다." 가 이해가되지 않습니다. 왜 __radius 변수가 없다고 인식하는 건가요? circle.radius getter, setter 인데 이 게터 세터가 __radius변수를 덮어 씌운건가요?
2022년 7월 12일
__radius 변수가 없다고 인식하는 것을 알기 위해서는 python의 접근제한자를 이해하셔야 합니다. python의 접근제한자는 public, private, protected가 있는데 __가 붙은 인스턴스 변수는 private 제한자로 처리됩니다. 그래서 __radius라는 변수명으로는 접근할 수 없고 getter, setter를 사용하셨다면 circle.radius 또는 circle.get_radius()와 같은 방식으로 접근할 수 있습니다.

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇