반응형
문제 : 함수 정의 바로 뒤에 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해서 해주고 싶은 걸 하는 것을 알 수 있다.
함수를 그냥 덮어씌우는 것이 아니라 뒤에 덧붙이고 싶을 때 유용할 것으로 보인다.
반응형
'파이썬' 카테고리의 다른 글
파이썬 readlines 결과에서 \n 제거하기 / read().splitlines() 사용하기 (0) | 2023.04.06 |
---|---|
[matplotlib] 과학적 표기법(1e2, 1e-3 등) 그냥 숫자로 바꾸기 scientific notation (0) | 2023.02.15 |
[Colab] 코랩에서 matplotlib 한글 폰트 깨짐 수정 apt-get install -y fonts-nanum (0) | 2023.02.15 |
[matplotlib] pandas Bar plot에서 하나만 다른 색 칠하기 (0) | 2023.02.15 |
R 로 csv 읽기 (0) | 2022.12.18 |
TypeError: Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool] (0) | 2022.12.07 |
백준 10546 파이썬 해시 완주하지 못한 선수 (0) | 2021.07.06 |
파이썬에서 프로그램 옆 argv 받기 (0) | 2021.07.02 |