이번 포스팅은 클래스입니다.
클래스는 반, 학급, 강의 와 같이 어느 목록의 묶음 상태입니다. 일종의 공간을 만들어 주는 함수인 것입니다.
그럼 왜 클래스를 쓰냐? 공간을 분리하고 지역변수가 많아지면서 더욱 복잡해지는 거 아니냐 하실 수 있습니다.
그래서 이번 포스팅에서는 클래스를 왜 사용하고 어떻게 활용하는지 알아 보겠습니다.
class를 사용하는 이유
- 코드의 재사용성으로 간단한 호출로 다시 사용가능
- 구조화된 데이터 관리에 매우 좋음
- 클래스를 사용하면 연관된 데이터와 기능(메서드)을 하나의 단위로 묶어 관리할 수 있어 코드가 더욱 직관적이고 유지보가 용이
class의 구성
위에서 간략히 소개했지만, 클래스란?
- 객체에 대한 속성과 기능을 코드로 구현 한 한 것 정확한 명칭의 유래는 (Classification(분류))에서 유래함
그럼 이제 여기서 객체란 무엇이냐?
- 객체의 특성(property), 속성(attribute) → 멤버변수
- 객체가 하는 기능 → 멤버 함수
class를 선언하는 것은 간단하다. 함수를 선언하듯, class함수를 입력후 원하는 class이름을 입력하고 콜론을 찍고 이제 하위 코드를 짜면 되는 것이다.
class class_name:
이제 함수와 차이점은 함수는 함수를 호출만 하면 바로 리턴값을 사용가능 하지만, 클래스는 인스턴스를 생성해 주어야 사용이 가능하다는 차이점이 있습니다.
위 처럼 클래스를 선언한 후에 indent없이 임의의 인스턴스(클래스와 관련된 이름이면 매우 좋습니다.)를 생성해 주시면 됩니다.
class_test = class_name()
이 처럼 설정해주신 다음에 클래스내에 함수들은 메서드 방식 함수.메서드와 같이 사용하실 수 있습니다.
아! 인스턴스가 무엇이냐 객체를 클래스로부터 만들어진 객체를 말하는 것입니다.
그럼 글을 충분히 읽었으니 직접 쳐봅시다.
실습(자동차 종류와 배기량 출력)
- 자동차 클래스를 정의하세요. (자동차 모델 변수: model, 배기량 변수:cc)
- 인스턴스 생성
- 2가지의 자동차를 입력받고 출력
'
'
'
'
'
자 이제 클래스 선언과 인스턴스 생성이 무엇인지 이해가 충분히 되셨길 바랍니다.
클래스 함수(메서드(Method))
클래스에 대해서 이해가 되었으면, 위에서 언급한 클래스 내부 함수 메서드를 이해하러 가봅시다.
클래스 함수란?
- 메서드 클래스 안에 정의된 함수
- 메서드 선언 시 첫 번째 매개변수로 self 필수 작성
- self는 자기 자신을 뜻함
- 클래스를 인스턴스롸 하지 않고 호출해서 사용하는 경우에는 필요 없음
- 호출할 때 self에 값을 직접 넘겨주지 않음 (자동 할당)
- self는 키워드가 아닌 식별자명. 즉, 다른 이름을 사용할 수 있지만, 현재 객체 자신을 의미하기 때문에 대부분의 개발자가 self사용
그럼 세세한 설명은 위에서 했으니 실습코드를 더 간단하게 바꿔 보겠습니다.
그런데 이제 저기 model, cc를 계속 입력해줘야 되는게 귀찮아 보이지 않으신가요?
이때 사용하는 것이 생성자 입니다.
- 생성자:
- 클래스를 생성할 때 호출되는 명령어 집합, 초기자라고도 합니다. 생성자는 def __init__(self, ````)의 형태로 작성됩니다. return값은 없읍니다.
- 단, 생성자는 있어도 되고 없어도 되는 존재로 클래스를 단순히 구조화된 데이터 저장소로 사용하려는 경우 사용됩니다.
그럼 생성자를 통해 더욱 간단하게 해봅시다.
이제 우리는 Car(변수1, 변수2)의 형태로 원하는 문장을 출력할 수 있는 것입니다.
이 외에도
특수 메서드
def __str__(self): (문자열을 return라는 함수)
가 있습니다.
지금까지 따라 오셨다면 혼합적인 실습을 한번 진행해야할 타이밍입니다.
실습(사칙연산 클래스 만들기)
- 인스턴스를 생성할 때 2개의 숫자를 class로 보냅니다.
- add 메서드(함수)는 두 수를 더한 결과값을 반환합니다.
- sub 메서드(함수)는 두 수를 뺀 결과값을 반환합니다.
- mul 메서드(함수)는 두 수를 곱한 결과값을 반환합니다.
- div 메서드(함수)는 두 수를 나눈 결과값을 반환합니다.
'
'
'
'
여기까지 클래스에 기본요소는 다 학습 한것 같습니다. 그럼 다음시간에는 클래스 변수와 인스턴스 변수에 대해서 알아보도록 하겠습니다.
오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

'python 시작하기' 카테고리의 다른 글
pythone +) 클래스 변수 실습 해답예시 , 건강상태 클래스 해답 예시 (0) | 2024.12.03 |
---|---|
python class 변수와 캡슐화 (0) | 2024.12.03 |
python 객체지향 프로그래밍 (0) | 2024.12.02 |
python 재귀함수와 lamda함수 (1) | 2024.11.30 |
[pythone] 전역변수와 지역변수 (0) | 2024.11.30 |