본문 바로가기
파이썬/기본

파이썬 클래스의 __init__ self 에 관하여

by artra 2023. 5. 7.
반응형

파이썬 Class __init__ self 는 무엇일까?

 

우선 자료를 찾아보고 쉽게 생각하면

 

파이썬에서 만들어진 하나의 규칙으로 생각하면 더 쉽다.

 

마치 해외갔는데 여기는 입국절차를 이렇게 하네?

 

우리나라 어떤 음식점에 갔는데 손님 음식을 이렇게 내어주네?

 

객체지향 프로그래밍인 C++, 자바도 다르듯이

 

파이썬도 다르다고 생각하면 되겠다.

 

class Calculator:
    def __init__(self, num1, num2):
        self.num1 = num1
        self.num2 = num2
    
    def multiply(self):
        return self.num1 * self.num2
    
    def add(self):
        return self.num1 + self.num2
 
# 클래스 인스턴스 생성
calc = Calculator(35)
 
# 곱하기 결과 출력
print(calc.multiply()) # 15
 
# 더하기 결과 출력
print(calc.add()) # 8
cs

 

위에서 보듯이 클래스에서는 __init__ 과 slef는 필수 이다.

 

다른 객체지향 코드 클래스에서 초기화하는 과정과 다르게

 

파이썬은 self를 붙여 클래스 내자신에 값을 클래스내 self로 정의하고

 

초기화된 변수이름을 붙임으로써 값을 계산 한다.

 

 

만약 __init__ 없이 클래스를 작성한다면 아래와 같다.

 

#__init__이 필요하지 않은 예제 1
class Calculator:
    def multiply(num1, num2):
        return num1 * num2
    
    def add(num1, num2):
        return num1 + num2
 
# 클래스 내 함수 호출
print(Calculator.multiply(35)) # 15
print(Calculator.add(35)) # 8
 
 
#__init__이 필요하지 않은 예제 2
#하나의 클래스 안에 있는 코드 예제
class Calculator:
    def multiply(self, num1, num2):
        return num1 * num2
    
    def add(self, num1, num2):
        return num1 + num2
 
# 클래스 인스턴스 생성
calc = Calculator()
 
# 곱하기 결과 출력
print(calc.multiply(35)) # 15
 
# 더하기 결과 출력
print(calc.add(35)) # 8
 
cs

 

클래스에서 _init__ 없어도 작동은 되지만

 

self는 없으면 작동 안된다.

 

결론 : __init__ 과 self는 Class 쓸때 꼭 쓰자

반응형

댓글