Python super 함수

Muhammad Waiz Khan 2021년6월22일
Python super 함수

이 튜토리얼은 파이썬에 내장 된super()함수의 목적과 사용을 설명합니다. OOP (Object-Oriented Programming)의 핵심 개념 중 하나는 상속으로, 하나의 클래스 (하위 클래스)가 부모 클래스 또는 수퍼 클래스의 속성과 메서드에 액세스 할 수 있습니다.

다중 상속에서 클래스는 여러 클래스의 속성과 메서드를 상속 할 수 있습니다. 즉, 클래스에 여러 수퍼 클래스가 있습니다. super()함수는 유용하며 주로 다중 상속의 경우에 사용됩니다. 코드 예제와 함께super()함수의 세부 사항 및 사용은이 자습서에서 설명합니다.

Python에서 내장 함수super()사용

super()함수는 클래스에서 재정의 된 상속 된 메서드에 액세스합니다. super()함수는 다음 상위 클래스 또는 수퍼 클래스의 함수에 액세스하기 위해 다중 상속이있는 하위 클래스에서 사용됩니다. super()함수는 MRO (Method Resolution Order)를 사용하여 다음 상위 클래스를 결정합니다. MRO가C -> D -> B -> A -> object인 경우처럼D의 경우super()함수는D -> B -> A -> object 순서로 다음 상위 클래스 또는 수퍼 클래스 메소드를 찾습니다.

클래스가 단일 상속 클래스 인 경우이 경우super()함수는 이름을 명시 적으로 사용하지 않고 부모 클래스의 메서드를 사용하는 데 유용합니다.

super(type)함수는 입력type의 부모 또는 형제 클래스의 메서드를 호출하는 프록시 개체를 반환합니다. super()의 구문은 파이썬 2와 3에서 다릅니다. 파이썬 2에서super()함수를 사용하여 상속 된 메서드mymethod()super(type, self).mymethod(args)로 호출 할 수 있습니다. 그리고 파이썬 3에서는super().mymethod(args)를 사용할 수 있습니다.

이제super()함수를 사용하여 Python의 자식 클래스에서 상속 된 메서드를 호출하는 자세한 예제 코드를 살펴 보겠습니다.

예제 코드 :

class mysuper_class(object):
    def super_method(self):
        print("Method of the super class was called!")


class myclass(mysuper_class):
    def mymethod(self):
        super().super_method()


a = myclass()
a.mymethod()

출력:

Method of the super class was called

관련 문장 - Python Class