python/공부

[python] __init__

sungin95 2023. 8. 5. 20:15

파이썬을 공부한지 1년이 되가는데. 이제야 __init__의 용도를 알게되어서 부끄럽지만 부끄럽다고 정리를 안하면 앞으로도 안할것을 알기 때문에 정리를 합니다. 

자바로 치면 생성자와 비슷한 역할을 합니다. 

 

목차

  • 클래스란
  • __init__란
    • self란

 

 

클래스란

클래스란 일종의 모형입니다. 이 모형에서 속성메서드를 담을 수 있습니다. 

예를 들어 

class MyClass:
  x = 5

위와 같은 클래스를 만들었다면 같은 모형을 계속 복사 할 수 있습니다. 

p1 = MyClass()
p2 = MyClass()
print(p1.x) # 5가 출력
print(p2.x) # 똑같이 5가 출력

아쉬운 점이 있다면 항상 x는 5라는 것입니다. 저는 x를 3 혹은 10으로 바꾸고 싶은데 말이죠. 

이때 사용하는게 __init__이고 초기화(initialize)라고 합니다. 

 

__init__란

파이썬에서 __init__은 클래스로부터 객체가 생성될 때 자동으로 호출되는 특수한 메서드입니다. 이 메서드를 사용하여 객체의 속성을 초기화합니다.

class MyClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

이제 x를 마음대로 바꿀 수 있고 y도 추가해 주었습니다. 

obj1 = MyClass(3, "안녕하세요")
obj2 = MyClass(10, 5)

print(obj1.x) # 3
print(obj1.y) # 안녕하세요
print(obj2.x) # 10
print(obj2.y) # 5

 

self의 역할

self라는 이름에서 알 수 있듯이 자기 자신을 호출할 때 사용합니다. 이를 통해 메서드가 호출되는 객체 자신(self)에 접근할 수 있습니다.

클래스 메소드의 첫번째 인자를 자동으로 self로 지정합니다. 

확인 방법으로는 마우스를 갖다가 대면 (parameter) self: Self@Questions 라는 표시가 나옵니다. 

 

 

 

Reference

https://www.w3schools.com/python/python_classes.asp

https://engineer-mole.tistory.com/190