본문 바로가기
Python Object-oriented Programming

__init__ Method

by 자동매매 2023. 4. 3.
 

Introduction to the Python __init__() method

 

클래스의 객체를 생성할  Python 자동으로 __init__() 메서드를 호출하여 객체의 속성을 초기화합니다.

일반 메서드와 달리 __init__()  메서드에는 양쪽에 개의 밑줄(__) 있습니다.

명명은 dunder init라고 합니다.

 

__init__() 메서드 양쪽에 있는 이중 밑줄  파이썬이 내부적으로 메서드를 사용할 것임을 나타냅니다. , 메서드를 명시적으로 호출하면 됩니다.

 

파이썬은   객체를 만든 직후에  __init__() 메서드를 자동으로 호출하기 때문에 __init__() 메서드를 사용하여 object 속성을 초기화할 있습니다.

 

다음은 __init__() 메서드를 사용하여 Person 클래스를  정의합니다.

 

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


if __name__ == '__main__':
    person = Person('John', 25)
    print(f"I'm {person.name}. I'm {person.age} years old.")

 

Person 클래스의 인스턴스를 만들  Python 다음 가지 작업을 수행합니다.

  1. 객체의 namespace( 예, __dict__ )를 empty dict ({})로 setting함으로서 Person 클래스의 새인스턴스를 만든다.
  2. __init__ method 를 호출하여 새로만든 개체의 속성을 초기화합니다.

__init__ method는 constructor(생성자)가 아니다. 단지 개체 속성을 초기화한다. 즉 초기화 내역을 __init__ method에 정의

__init__ self 이외의 perameters 있는   위의 같이 개체를 만들 해당 인수를 전달해야합니다. 그렇지 않으면 오류가 발생합니다. ( default value 사용하라! )

 

 The __init__ method with default parameters

 

__init__() 메서드의 매개 변수는 기본값을 가질 있습니다. 예를 들어:

 

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


if __name__ == '__main__':
    person = Person('John')
    print(f"I'm {person.name}. I'm {person.age} years old.")

Output:

I'm John. I'm 22 years old.

 

예제에서 age 매개 변수의 기본값은 22입니다. age인수를 Person() 전달하지 않기 때문에 age 기본값을 사용합니다.

 

Summary

  • __init__() 메서드를 사용하여 객체의 속성을 초기화합니다.
  •  __init__()  객체를 생성하지 않지만 객체가 생성 자동으로 호출됩니다.
 

 

'Python Object-oriented Programming' 카테고리의 다른 글

Private Attributes  (0) 2023.04.03
Instance Variables  (0) 2023.04.03
Class Methods  (0) 2023.04.02
Methods  (0) 2023.04.02
Class Variables  (0) 2023.04.02

댓글