본문 바로가기

언어/Python

Class 공부 (클래스 기본개념)

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