Class 에서 init self 사용

2024. 11. 14. 10:38정보처리,전산/Python

반응형

 

Cal 클래스에서 생성자에서 a와 b를 직접 받는 방식, 생성자에서 인자를 받지 않고, 메서드에서 인자를 받는 방식이 있다.

 

클래스들의 차이점:

  1. 사용자의 의도:
    • 첫 번째 클래스는 특정 값을 a, b로 설정하고 계속해서 사용할 때 유용한다.
    • 두 번째 클래스는 값이 계속 바뀌는 경우에 유용하며, 메서드 호출 때마다 새로운 값을 넘겨줘야 한다.
    • 세 번째 클래스는 상태 메시지(self.final)를 추가하여 계산 후 결과 외에도 추가적인 정보를 제공한다.

 

 

 

  1. 생성자: __init__에서 a와 b를 인자로 받는다. 인스턴스를 만들 때 Cal(4, 5)와 같이 두 개의 인자를 전달해야 한다.
  2. 메서드: 각 메서드는 self.a와 self.b를 사용하여 계산을 수행한다. 이때, self.a와 self.b는 생성자에서 설정된 값이다.
  3. 사용 예시: cal = Cal(4, 5)로 인스턴스를 만들고, 메서드를 호출할 때는 인스턴스에 저장된 a와 b 값을 사용한다.

 

 

class Cal :
    def __init__(self):
        pass
    
    def sum(self,a,b):
        return a+b
    def div(self,a,b):
        return a/b
    def mul(self,a,b):
        return a*b
    def sub(self,a,b):
        return a+b
cal = Cal()
print(cal.mul(3,5))

 

 

  • 생성자: __init__에서 아무 것도 하지 않는다. 이 클래스는 인스턴스를 생성할 때 a와 b를 받지 않는다.
  • 메서드: 각 메서드는 계산을 할 때마다 직접 a와 b를 인자로 받아서 사용한다. 즉, 메서드 호출 시마다 인자를 전달해야 한다.
  • 사용 예시: cal = Cal()로 인스턴스를 만들고, 메서드를 호출할 때는 cal.mul(3, 5)처럼 각 메서드에 인자를 전달해야 한다.

 

 

 

 

 

class Cal :
    def __init__(self):
        self.final="계산 완료"
        pass
    
    def sum(self,a,b):
        return a+b,self.final
    def div(self,a,b):
        return a/b
    def mul(self,a,b):
        return a*b
    def sub(self,a,b):
        return a+b
cal = Cal()
print(cal.mul(3,5))   
print(cal.sum(3,5))

 

 

  1. 생성자: __init__에서 self.final이라는 속성을 초기화한다.
  2. 메서드: sum 메서드는 계산 결과와 함께 self.final을 반환한다. 
  3. 사용 예시: cal = Cal()로 인스턴스를 만들고, 메서드를 호출할 때는 인자를 전달하며, 결과와 함께 self.final 속성도 반환할 수 있다.
 
 

 

 

반응형