파이썬 > Pandas

파이썬에서 생성자란

more_biscuit 2024. 7. 19. 17:25

생성자로 객체를 만든다.. -> 무슨말일까... 궁금하신 분들을 위한 글.

 

 

생성자(Constructor)는 객체 지향 프로그래밍에서 클래스로부터 객체가 생성될 때 자동으로 호출되는 특별한 종류의 메소드(함수)입니다. 생성자의 주된 목적은 객체가 생성될 때 그 객체의 데이터를 초기화하는 것이며, 필요한 자원을 할당하거나 초기 상태를 설정하는 등의 작업을 수행합니다.

 

라고 정의되었는데, 잘 모르겠면. 저의 언어로 다시 설명..

 

  • 정의된 클래스를 붕어빵틀이라고 합시다. 난 먹을 붕어빵을 여러개를 만들어서, 팥, 슈크림, 초코를 넣을 예정입니다.
  • 틀을 사용하면 붕어빵을 여러개 만들 수 있습니다. 붕어빵 여러개는 이렇게 만들어요.  코드로 본다면,
//일단 붕어빵틀이라는 클래스를 만든다

class 붕어빵틀:
    str 붕어빵맛= '아직모름'
붕어빵이름 = 붕어빵틀이름()

//이제 붕어빵 객체들을 만든다. 붕어빵 3개 먹어야지

붕어빵1 = 붕어빵틀()
붕어빵2 = 붕어빵틀()
붕어빵3 = 붕어빵틀()

//붕어빵의 공통점은 모양이 비슷하다. 그리고 맛을 변경할 수 있다 였다. 
//여기서 모양이란,, 클래스 안에 들어있는 메소드와 변수들이 같다로 연결해서 생각할 수 있다. 
//붕어빵들에 내부에 재료를 다르게 넣어서 먹어보자

붕어빵1.붕어빵맛 = '팥'
붕어빵2.붕어빵맛 = '슈크림'
붕어빵3.붕어빵맛 = '초코'

 

 

 

  • ->>> 오오 나는 위에서 class 를 만들때 그냥 붕어빵틀 이라고 정의했는데, 여기서는 왜 ()가 붙을까?

() 가 붙으면 함수라고 배웟는데, ,,,, 

맞습니다... class 명과 같은 이름의 함수를 불렀고 이것은 객체를 만들어주는 함수인 것이죠. 우리는 이걸 생성자 라고 불렀어요. 

파이썬에서 알아서 생성자를 만들고 사용할 수 있게 해주는것.!

 

 

객체와 인스턴스가 궁금하다면 다른 포스팅에서.. 

 

생성자 예시

다음은 파이썬에서 간단한 클래스와 생성자를 사용하는 예시입니다:

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def display_info(self):
        print(f"{self.year} {self.make} {self.model}")

# 객체 생성
my_car = Car("Hyundai", "Tucson", 2022)

# 객체의 정보 출력
my_car.display_info()

위 예시에서 Car 클래스의 __init__ 메소드는 생성자 역할을 하며, 객체가 생성될 때 make, model, year 세 개의 파라미터를 받아 객체의 상태를 초기화합니다. my_car 객체를 생성할 때, 이 파라미터들은 Hyundai, Tucson, 2022로 제공되고, 생성자는 이 값을 객체 내에 저장합니다.

생성자는 클래스의 모든 객체가 유효한 초기 상태를 가지고 시작할 수 있도록 보장하는 중요한 역할을 수행합니다.

 

 

특징과 사용 방법

  • 자동 호출: 객체를 생성할 때 생성자는 자동으로 호출되며, 이 때 개발자는 생성자를 명시적으로 호출할 필요가 없습니다.
  • 오버로딩: 많은 객체 지향 언어에서 생성자는 오버로딩될 수 있습니다. 즉, 동일한 이름의 생성자를 매개변수의 유형이나 수에 따라 다르게 정의할 수 있습니다.
  • 명명 규칙: 대부분의 프로그래밍 언어에서 생성자의 이름은 클래스의 이름과 같습니다(Java, C++ 등). 파이썬과 같은 언어에서는 __init__이라는 특별한 메소드로 생성자를 정의합니다.