#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목Dynamic Language2020-01-08 16:10
작성자 Level 10
첨부파일스크린샷 2020-01-08 오후 4.09.03.png (51.1KB)

Python은 동적언어 계열입니다.

Class를 처음 설계해서 만들때 포함되지 않은 멤버 변수와 Method를 실행시 추가할 수 있지요.

간단히 이야기 하면, 주석처리한 __id는 private한 member variable이 맞습니다.

그래서 주석 처리한 부분이 private한 영역을 침범하려 하니 에러를 발생한 것 이지요.

그런데 Class 밖에서 student1.__id = 1 처럼 하면, 이것은 동적으로 student1 객체에 __id 라는 public 변수를 추가한 겁니다.

이러한 이유로 첨부의 visual code에서 class 내부의 변수들을 디버그하면서 보게되면,

두개의 __id가 student1 객체안에 있음을 확인 할 수 있습니다.

결국 __id 라는 이름으로 두개의 (하나는 private, 하나는 public) 변수를 만든 겁니다.

댓글