노력에는 지름길이 없으니까요

파이썬 클래스, init과 self에 대한 이해 본문

Python

파이썬 클래스, init과 self에 대한 이해

데건 2024. 7. 12. 14:28
728x90

클래스의 용도?

클래스(Class)는 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나

객체 지향 프로그래밍현실 세계의 사물을 모델링하여 프로그래밍하는 방법.

클래스는 코드를 조직화하고 재사용성을 높이기 위해 사용한다.

 

클래스의 다형성

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

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

class Cat(Animal):
    def sound(self):
        print("Meow")

# 다형성 활용
animals = [Dog(), Cat()]
for animal in animals:
    animal.sound()

 

세가지 클래스에 대해 모두 같은 이름의 (sound) 메소드가 선언되어 있지만,

다른 클래스에서 선언되어 있기 때문에 각각 다른 문자열이 출력될 것이다.

 

 

 

init이란?

__init__은 파이썬에서 클래스의 생성자(constructor) 메소드.

클래스의 인스턴스를 생성할 때 자동으로 호출되며, 인스턴스가 생성될 때 초기화 작업을 수행하는 메소드.

(가끔 vs에서 프로젝트를 진행하면서 init 폴더가 없을 때 오류가 나던 경우가 떠올랐다.)

class ClassName:
    def __init__(self, parameter1, parameter2):
        self.attribute1 = parameter1
        self.attribute2 = parameter2

    def method1(self, parameter1, parameter2):
    # 메서드 내용 작성
        pass

 

어떤 클래스를 사용하든지 초기값을 설정을 해야하기 때문에 init은 반드시 필요하다.

 

 

self란?

init에서 초기화를 위해 사용되는 클래스 그 자체를 상징하는 변수라고 생각하면 쉽다.

메서드의 첫 번째 매개변수로 self를 반드시 사용해야 함!

 

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 객체 생성
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)

 

 

클래스 사용 예시

클래스를 사용하여 데이터 전처리 단계를 모듈화하고 재사용 가능한 코드로 만들 수 있다.

raw_data = [1,2,4,5,6,87,2,253654]

class DataPreprocessor:
    def __init__(self, data):
        self.data = data

    def normalize_data(self):
        # 데이터 정규화 작업 수행
        pass

    def handle_missing_values(self):
        # 결측치 처리 작업 수행
        pass

    def remove_outliers(self):
        # 이상치 제거 작업 수행
        pass

# 데이터 전처리 객체 생성
preprocessor = DataPreprocessor(raw_data)
preprocessor.normalize_data()
preprocessor.handle_missing_values()
preprocessor.remove_outliers()

 

 

 

참고

데이터 분석 파이썬 종합반 강의자료

https://wikidocs.net/192016

728x90
반응형

'Python' 카테고리의 다른 글

파이썬, 데코레이션  (0) 2024.07.15
파이썬, 불리언 인덱싱이란?  (0) 2024.07.12
파이썬 포맷팅  (0) 2024.07.11
join 사용법  (0) 2024.07.05
tuple과 SET  (0) 2024.06.28