파이썬

python function 속 super().__함수이름() 뜻

mcdn 2023. 1. 27. 14:24
반응형

 

문제 : 함수 정의 바로 뒤에 super().함수()는 무슨 뜻일까

class SoRec(SocialRecommender ):
    def __init__(self,conf,trainingSet=None,testSet=None,relation=list(),fold='[1]'):
        super(SoRec, self).__init__(conf,trainingSet,testSet,relation,fold)

super(클래스이름, self).__init__(파라미터)

에서 클래스 안에서 super를 하는 의미가 무엇인지 궁금했다. 

 

 

 

 

출처 : 

https://www.w3schools.com/python/ref_func_super.asp 

위처럼 Child()를 했을 때 

Child 내의 __init__함수가 실행되면서 super().__init__()역시 실행되는데 

이러면 자식이 상속받은 Parent 클래스의 __init__이 실행되면서 parent init이 프린트되고 

그러고 나서 child init이 프린트되는 것을 알 수 있다. 

 

따라서 super()이란 단순히 상속받는 것이 아니라 

함수 내의 모든 내용을 다 실행하고 다음에 child해서 해주고 싶은 걸 하는 것을 알 수 있다. 

 

함수를 그냥 덮어씌우는 것이 아니라 뒤에 덧붙이고 싶을 때 유용할 것으로 보인다. 

반응형