클래스 (생성자,소멸자,캡슐화)
생성자 __init__
- 객체가 선언될때 자동으로 호출된다.
- 인자가 있을 때와 인자가 없을때로 2가지 경우가 있다.
인자가 있을 때에는 def __init__ ( self, 변수 ):
인자가 없을 때에는 def __init__ ( self ):
인자가 있을 때 메서드 호출할 때 선언하지 않게 되면 에러가 발생한다.
EX)
객체가 선언되면 생성자 __init__이 실행되는 것을 볼 수 있습니다.
인자가 있는 경우에는 인자를 쓰지 않을 경우에는 이런 에러메시지를 확인해볼 수 있습니다.
소멸자 __del__
- 객체를 지울 때 사용된다.
EX)
객체를 선언하고나서 다시 객체를 삭제했을 경우에는 소멸자 __del__이 실행되는 것을 확인할 수 있습니다.
캡슐화(은닉제어)
- 객체 지향 프로그래밍에서는 멤버 변수에 대한 외부로부터 접근을 허용하지 않고 멤버 메서드를 통해서 접근하도록 프로그래밍 하는 것을 권장하고 있습니다.
- 외부에 노출할 것과 감출 것을 결정하는 것
- 파이썬에서는 캡슐화가 정확히 이루어지지는 않는다.
강제로 볼 수가 있다. 왠만하면 캡슐화 해주는 것이 좋다
- 내부에서만 접근 가능한 변수
- 변수이름앞에 _ 를 붙여줍니다.
1) @property
- 멤버 변수에 접근할 때
2) @ 메서드이름.setter
- 멤버 변수 값 설정(변경)
- 실제로는 메서드 호출을 통해서 객체에 접근하는 것
EX) num 이라는 클래스 변수에 _ 를 설정하게 된다면 속성에서 안보이는 것을 확인할 수 있다.
[ 파이썬 결과창 ]
EX) name이라는 변수에 _를 설정하면 확인할 수 없는데 property와 setter를 설정하므로써 접근이 가능하고 변경까지 가능한 것을 확인할 수 있다.
[ 파이썬 결과창 ]