Nubes et Stella

[Python] 클래스 생성자(__init__) 본문

Programming/Python

[Python] 클래스 생성자(__init__)

SeongYeong Han 2023. 9. 4. 18:58

01. 클래스 생성자란?

클래스를 생성한 후 인스턴스를 생성할 때 자동으로 실행되는 메서드이다. 일반적으로 최초 인스턴스를 생성할 때 변수 값을 초기화하기 위해서 사용한다.

 

아래의 예시를 들어보면 test01이라는 클래스가 있고 그 안에 "Siuuuu"를 출력해주는 생성자가 존재한다. 생성자는 인스턴스를 생성할 때 자동으로 생성되기 때문에, t = test01()를 실행하게 되면 "Siuuuu"가 출력이 되는것을 볼 수 있다.

class test01:
    def __init__(self):
        print("Siuuuu")
        
    def func1(self):
        print("func1")
        
    def func2(self):
        print("func2")

t = test01()
Siuuuu

 

또 다른예시를 들어보면 아래의 코드에는 생성자에 매개변수가 추가되었다. 그 상태에서 위와 같이 실행해보면 에러가 발생하는 것을 볼수있다. 생성자가 인스턴스 생성시에 자동으로 실행되는데, 이 때 인자값을 못 받았기 때문에 발생한 에러이다.

 

이 문제를 해결하기 위해서는 인스턴스 선언시에 인자값을 추가해주면 된다.

Ex.) t = test01("john", "123", "010-2222")

class test01:
    def __init__(self, id, pw, phone):
        self.id = id
        self.pw = pw
        self.phone = phone

    def func1(self):
        print("func1")
        
    def func2(self):
        print("func2")

t = test01()
TypeError: __init__() missing 3 required positional arguments: 'id', 'pw', and 'phone'

'Programming > Python' 카테고리의 다른 글

[Python] range()와 xrange()의 차이  (0) 2023.10.07
[Python] @classmethod와 @staticmethod  (0) 2023.09.21