기술공부/개발_코드

Class, __init__, super.__init__

넹넹선생님 2022. 10. 24. 16:07
728x90
반응형

Class

- 클래스를 이용하는 이유

  재사용 가능, 코드 수정 최소화, 재귀함수?가능

 

-인스턴스

  클래스의 데이터나 함수를 사용하기 위해 클래스를 실체화하는 것

ex.

human = Person('민수씨', '23')

- self

  메소드의 임의의 인수

 

__init__(self, )

: 초기화를 위한 함수(=메소드)

: 인스턴스화를 실시할 때 반드시 처음에 호출되는 특수 함수

: 인스턴스 생성(오브젝트 생성)과 관련하여 데이터 초기?를 실시하는 함수

super.__init__(부모클래스에 전달할 input)

: 다른 클래스의 속성 및 메소드(=def로 정의한 과정도 사용)를 자동으로 불러와 해당 클래스에서도 사용이 가능하게 만듦

 

- 사용 방법

  초기화(__init__)단계에서 부모 클래스의 __init__메소드를 호출하는 원리

ex. Person 클래스(with name, age), Student 클래스

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

    def get_GPA(self): # 메소드
        print(f'제 학점은 {self.GPA}입니다.')

- 부모 클래스의 호출하기

   super().메소드이름

ex.

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

	def get_name(self):
    	print(f'전 대학생 {self.name}임당.') # 부모 클래스 말고 새로운 메소드로 덮기
        
    def get_GPA(self):
    	super().get_name() # 부모 클래스의 메소드로 실행
        print(f'제 학점은 {self.GPA}입니다.')

 

참고

https://jimmy-ai.tistory.com/79

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

 

728x90
반응형