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