본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[Python] Python에서 클래스 사용하기

by 열공노년 2023. 10. 17.
반응형

Python에서 클래스 사용하기


목차


1. 클래스란 무엇인가?
2. 클래스의 기본 구조
3. 인스턴스 변수와 메서드
4. 생성자 `__init__`
5. 클래스 변수와 인스턴스 변수
6. 상속
7. 오버라이딩과 오버로딩
8. 예제 코드
9. 마무리

1. 클래스란 무엇인가?


클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀입니다.

2. 클래스의 기본 구조


Python에서 클래스를 정의하기 위해서는 `class` 키워드를 사용합니다.

class MyClass:
    pass

 

3. 인스턴스 변수와 메서드


인스턴스 변수는 객체별로 각각 존재하는 변수입니다. 메서드는 클래스 내에 정의된 함수입니다.

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name} says woof!")



4. 생성자 `__init__`


`__init__` 메소드는 클래스의 인스턴스를 생성할 때 자동으로 호출되는 메서드입니다.

class Dog:
    def __init__(self, name):
        self.name = name



5. 클래스 변수와 인스턴스 변수


- 클래스 변수: 클래스 내부에서 정의, 모든 인스턴스가 공유
- 인스턴스 변수: 각 인스턴스 내부에서 정의, 인스턴스마다 독립적

class Dog:
    species = "Mammal"  # 클래스 변수
    
    def __init__(self, name):
        self.name = name  # 인스턴스 변수



6. 상속


상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 기능입니다.

class Animal:
    def __init__(self, species):
        self.species = species

class Dog(Animal):
    def __init__(self, name, species):
        super().__init__(species)
        self.name = name



7. 오버라이딩과 오버로딩


- 오버라이딩: 부모 클래스의 메소드를 자식 클래스에서 재정의
- 오버로딩: 같은 이름의 메소드를 여러 개 정의, 파이썬에서는 지원하지 않음

class Animal:
    def make_sound(self):
        print("Some generic sound")

class Dog(Animal):
    def make_sound(self):
        print("Woof")



8. 예제 코드


간단한 계산기 클래스를 만드는 예제입니다.

class Calculator:
    def add(self, x, y):
        return x + y
    
    def subtract(self, x, y):
        return x - y
    
    def multiply(self, x, y):
        return x * y
    
    def divide(self, x, y):
        if y == 0:
            return "Cannot divide by zero"
        return x / y

계산기 예제

이 계산기 클래스는 간단한 산술 연산을 수행하는 메소드를 제공합니다. 각 메서드는 연산을 수행하고 결과를 반환하는 구조로 되어 있습니다. 클래스를 사용하면 이러한 기능을 재사용할 수 있어 프로그래밍이 편리해집니다.


9. 마무리


클래스는 객체 지향 프로그래밍의 핵심 요소 중 하나입니다. 클래스를 통해 코드의 재사용성을 높이고, 구조를 명확하게 할 수 있습니다.

반응형