728x90
반응형
이번 포스팅에서는 클래스에 대한 변수와 캡슐화라는 class 기능에 대하여 알아 봅시다.
인스턴스 변수란?
- 특정 인스턴스에만 영향을 미치며, 객체마다 독립적으로 유지
- 각 객체별로 고유한 데이터를 저장할 때 사용
- 객체 간에 서로 영향을 미치지 않음
클래스 변수란?
- 해당 클래스를 사용하는 모두에게 공용으로 사용되는 변수
- 값을 공유하고 유지하는 특성을 가짐
- 클래스 변수의 값을 변경하면, 해당 클래스의 모든 인스턴스에서 값이 변경
Ex
이제 개념을 설명해 보았으니, 실습을 진행해 봅시다.
실습(사번 자동부여 클래스)
- 멤버 변수 : 사번(id), 사원이름(name)
- 클래스 변수 : serial.num
- 사번번호는 1000부터 시작
'
'
'
'
위 실습이 매우 간단하였으니, 조금 난이도 있는 문제를 진행해 봅시다.
실습2(Supermarket 클래스)
- 클래스를 선언할 때, 인자로 location, name, product, customer 받기
- (location :위치, name: 가게 이름, product : 파는 물건, customer : 고객의 수)
- print_location( ) : 위치를 출력하는 함수
- change_category( ) : 받은 인자로 파는 물건 바꾸는 함수
- show_list( ) : 현재 파는 물건 출력
- enter_customer( ) : 손님의 수를 1씩 늘리는 함수
- show_info( ) : 가게 이름, 위치, 파는 물건, 손님 수 모두 출력
해답에시는 다음 포스팅에 공개하겠습니다.
이번에는 캡슐화에 대해서 알아 보겠습니다.
캡슐 무언가를 하나로 묶어놓은 것 같은 느낌이 드는 단어이지 않습니까?
캡슐화란?
- 캡슐화는 데이터를 하나의 단위로 묶고, 외부로부터 직접 접근을 제한
- 필요한 경우 메서드를 통해 데이터를 제어하도록 하는 프로그래밍 기법
- 캡슐화는 데이터 보호와 모듈화를 목적
- 파이썬에서는 변수의 이름 앞에 밑줄(_또는 __)을 붙여 접근 제한을 표현
- (실질적으로는 접근이 가능해 개발자들은 주의를 해야합니다)
뭐 의미를 들어보면 정보에 대한 보안성을 데이터로 묶어 높이는 것이 목적이지만, python은 다른 언어와 달리 기본이 public이다 보니 엄격한 정보은닉이 없습니다.
그래서 접근 제한자를 사용하여 관용적으로 사용하고 있는 것입니다.
- Public : 어디서나 접근 가능
- Private : 해당 클래스 내에서만 접근 가능 해당 멤버 앞에 __(double underscore)를 붙여서 표시
- Protected : 보통은 해당 클래스 & 하위 클래스 내에서만 접근 가능 이라는 의미 파이썬에서는 해당 멤버의 앞에 _(single underscore)를 붙여서 표시 즉, 파이썬은 실제 제약되지는 않고 일종의 경고 표시로 사용됨
정보은닉(Information Hiding)
- 정보은닉 : 캡슐화로 인해 달성되는 결과
- 함수 생성 : get + 변수 이름(), set + 변수 이름()
- set + 변수 이름() : 정보를 설정할 때
- get + 변수 이름() : 정보를 가져올 때
그럼 간단한 getter와 setter에 대해서 예시를 통해 알아 봅시다.
마지막 으로 캡슐화까지 실습을 하고 포스팅을 마치겠습니다.
실습(건강상태 클래스 만들기)
- 운동을 하면 체력이 1증가하고, 술을 마시면 체력이 1감소합니다.
- 건강 상태 : hp로 설정, hp의 범위: 1~100
- hp와 이름은 private로 설정
- hp는 사람마다 기본값이 다르도록 설정
오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

반응형
'python 시작하기' 카테고리의 다른 글
python 클래스 상속, 다향성 (0) | 2024.12.04 |
---|---|
pythone +) 클래스 변수 실습 해답예시 , 건강상태 클래스 해답 예시 (0) | 2024.12.03 |
python 클래스 (4) | 2024.12.02 |
python 객체지향 프로그래밍 (0) | 2024.12.02 |
python 재귀함수와 lamda함수 (1) | 2024.11.30 |