#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http 제목답변입니다 ^^2018-11-10 19:33작성자drsungwon 첨부파일스크린샷 2018-11-10 오후 9.24.53.png (216.8KB) 본인이 접근한 __countStudent는 원래 class Student를 만들면서 정의한 멤버 변수 __countStudent 가 아닙니다. 첨부의 코드에서 2번 print를 보면, 생성한 객체 수가 없어서 0이 출력됩니다 (멤버 변수 __countStudent가 0으로 초기화된 후 유지된 겁니다). 3번 print를 실행해보면, 우리가 정의한 __countStudent는 이름이 바뀌어서 _Student___countStudent로 바뀌었는데, 이렇게 해서 Python은 Private 개념을 구현합니다. 이런 상황에서 4번 print를 실행하면 에러가 납니다. Private로 막혀 있어서지요. 궁금하면 주석을 제거해 보세요. 그런데 Student.__countStudent = 4를 실행하면, Python은 class Student에 기존 __countStudent가 아닌 새로운 변수 __countStudent 를 추가합니다. 이는 앞서 객체안에서 정의한 변수하곤 완전히 다른 놈입니다. 따라서 6번 print를 실행하면, 원래 우리가 정의한 변수 __countStudent (내부적으로 이름이 _Student___countStudent)의 값인 0이 출력됩니다. 그리고 7번 printf를 실행하면, 원래 우리가 class 정의시 정의한 변수 __countStudent 가 여전히 _Student___countStudent로 있으며, 방금 새로 추가한 변수가 따로 __countStudent로 있는 것을 볼수 있습니다. 마지막으로 8번 print를 실행하면, 본인이 추가한 변수의 값인 4가 나오지요. 즉,, 본인은 완전히 새로운 변수를 추가한 후, 이의 값을 출력한 것입니다. 이해가 되나요? 목록답변글쓰기 댓글 [2] 댓글작성자(*)비밀번호(*)내용(*) 댓글 등록 더보기이전16번쨰 실습 Private Attribute 과정중에서요...class private2018-11-10다음텀프로젝트 제안서언어9등급2018-11-09 Powered by MangBoard | 워드프레스 쇼핑몰 망보드