Class란?
객체 지향 프로그래밍(Object-Oriented Programming: OOP)의 핵심요소
클래스는 데이터와 함수를 하나의 재사용 가능한 블록으로 묶는 방법을 제공함
이를 통해 데이터 구조를 모델링하고 복잡한 기능의 개발이 가능
Class의 기본 개념
클래스: Object의 프로토타입. class라는 키워드를 사용해 정의함
class 클래스명:
class MyClass:
인스턴스: 클래스에 의해 생성된 객체
클래스는 실체가 없이 정의된 것이지만, 인스턴스는 실체가 만들어진 것
클래스가 설계도라면 인스턴스는 이 설계도에 따라 만들어진 실제 '건물'
# 클래스로 인스턴스를 생성함
MyInstance = MyClass()
속성(Attributes): 클래스 내부에 정의된 변수
클래스의 상태를 저장함
class 내에서 __init__이라는 메소드를 정의할 때 속성을 지정하게 됨
__init__의 인자로 변수를 정의하면 그것이 바로 속성
class MyClass;
def __init__(self, color, name, year)
self.color = color # 자동차의 색
self.name = name # 자동차 명
self.year = year # 자동차 제조년도
메소드(Method): 클래스 내부에 정의된 함수
객체의 동작을 메소드로 정의함
메소드를 정의할 때는 class 자체를 인수로 가져온다고 하여 self를 항상 입력해주어야 함
class MyClass:
def __init__(self, color, name, year):
self.color = color
self.name = name
self.year = year
def info(self):
print(f"이 차의 색상은 {self.color}색이고, 이름은 {self.name}이며, 제조년도는 {self.year}년 입니다."
여기서 클래스의 속성을 결정하는 __init__이라는 메소드는 클래스가 인스턴스화 될 때 호출되는 메소드
__init__ 메소드를 호출하면서 기본 속성을 초기화하게 됨
클래스의 장점
1. 코드 재사용성: 클래스를 통해 코드의 중복을 줄이고 재사용성을 높일 수 있음
2. 캡슐화: 데이터와 함수를 하나의 단위로 묶어서 관리할 수 있음
3. 확장성: 기존의 클래스를 수정하지 않고도 기능을 확장할 수 있는 방법을 제공함 (클래스의 상속 등)
모듈: 하나의 파이썬 파일
패키지: 모듈을 묶어놓은 폴더
from package.module import class, function
'언어 > Python' 카테고리의 다른 글
Pytorch 설치 전 - 왜 CUDA를 설치하는가? (0) | 2024.07.20 |
---|---|
pandas warning 해결 (Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0)) (0) | 2024.04.18 |
02/03 배운 것: isin, str.contains로 쉽게 필터링할 수 있다 (0) | 2023.02.10 |
11/27 배운점 (0) | 2022.11.28 |
11/26 공모전 준비하며 배운점 + 느낀점 (잊지말자 reset_index) (0) | 2022.11.27 |