선생님 강의 잘 듣고있습니다. (2:20) 제가 이해하고 있는게 맞는지 궁금해서 질문 남겨봅니다. 1. Class StudentList(list)의 의미가 StudenList는 list의 기능 전체를 상속받는다고 생각하면 될까요??? 2. 위에 1번의 질문 이 맞다면 super().append(요소)를 통해서 list에 있는 append의 기능을 전부 상속 받는다라고 생각해도 되나요? 3. 2번 질문이 맞다면 문제에서는 상속을 할때 super().append(요소)처럼 요소를 붙였는데 그냥 부모클래스에 있는 append 기능만 상속받는다 라고해서 super().append()하면 왜 안되는건가요?
1. 넵 맞습니다. 2-3. 해당 코드는 상속 받는 코드가 아니라, 부모의 함수를 호출하는 코드입니다. 상속 받는 코드는 StudentList(list)로 끝입니다. 이게 조금 복잡할 수 있는데[다른 프로그래밍 언어의 상속 방식과 달라 구분해서 다음 내용을 읽어주세요] (1) 파이썬에서 인스턴스의 어떤 이름을 쓰면, 그 이름을 자식 클래스부터 부모 클래스로 타고 올라가면서 찾습니다. (2) 따라서 만약 StudentList 클래스에 append 함수를 만들지 않았다면, 부모 클래스의 append 함수를 사용하게됩니다. (3) 하지만 우리는 Student 객체만 넣게 하려고 append 함수를 만들었습니다. (4) 따라서 append 함수를 호출하면 자식 클래스의 함수가 호출되므로, 이를 구현해줘야 합니다. (5) 다양한 구현 방법이 있겠지만, 부모가 가진 append 함수를 활용하게 구현하기 위해 super().appned(요소)라는 코드를 썼습니다.
1) 학생목록은 리스트가 아니라, 우리가 직접 만든 StudentList라는 자료형입니다. 2) StudentList에는 [0] = 0과 관련된 코드가 따로 작성되어 있지 않습니다. 그래서 해당 코드를 사용할 수 없습니다! 만약 사용하고 싶으시다면 __getitem__과 __setitem__이라는 별도의 함수를 정의해서 1) "학생목록[0] 했을 때 어떻게 될 것인가?"와 2) "학생목록[0] = 0 했을 때 어떻게 될 것인가?"를 정의해주셔야 합니다.
감사합니다.
언제나 친절하게
어려운것도 쉽게쉽게 자세히 설명해주시니 강의가 공부에 도움이 마니됩니다
명강의 고맙습니다👍👍
대부분 컴포지션을 써야겠네여 감사합니다^^
2024.09.16
안녕하세요. 감사히 잘 봤어요.
전체 영상 마치고 다시 반복해서 기억지속하려 해요.
2023년 7월 27일 목 23시15분 태평양 시간
좋은 강의 감사합니다!
선생님 강의 잘 듣고있습니다.
(2:20) 제가 이해하고 있는게 맞는지 궁금해서 질문 남겨봅니다.
1. Class StudentList(list)의 의미가 StudenList는 list의 기능 전체를 상속받는다고 생각하면 될까요???
2. 위에 1번의 질문 이 맞다면 super().append(요소)를 통해서 list에 있는 append의 기능을
전부 상속 받는다라고 생각해도 되나요?
3. 2번 질문이 맞다면 문제에서는 상속을 할때 super().append(요소)처럼 요소를 붙였는데 그냥 부모클래스에 있는 append 기능만 상속받는다 라고해서 super().append()하면 왜 안되는건가요?
1. 넵 맞습니다.
2-3. 해당 코드는 상속 받는 코드가 아니라, 부모의 함수를 호출하는 코드입니다. 상속 받는 코드는 StudentList(list)로 끝입니다.
이게 조금 복잡할 수 있는데[다른 프로그래밍 언어의 상속 방식과 달라 구분해서 다음 내용을 읽어주세요]
(1) 파이썬에서 인스턴스의 어떤 이름을 쓰면, 그 이름을 자식 클래스부터 부모 클래스로 타고 올라가면서 찾습니다.
(2) 따라서 만약 StudentList 클래스에 append 함수를 만들지 않았다면, 부모 클래스의 append 함수를 사용하게됩니다.
(3) 하지만 우리는 Student 객체만 넣게 하려고 append 함수를 만들었습니다.
(4) 따라서 append 함수를 호출하면 자식 클래스의 함수가 호출되므로, 이를 구현해줘야 합니다.
(5) 다양한 구현 방법이 있겠지만, 부모가 가진 append 함수를 활용하게 구현하기 위해 super().appned(요소)라는 코드를 썼습니다.
안녕하세요. 감사히 잘 봤어요.
2023년 7월 14일 금 17시08분 태평양 시간
항상 좋은 강의 감사드립니다. 4:16에 학생목록[0] = 0 을 했을 때 오류가 왜 발생하게되는지 이해가 안되서 질문드립니다!
1) 학생목록은 리스트가 아니라, 우리가 직접 만든 StudentList라는 자료형입니다.
2) StudentList에는 [0] = 0과 관련된 코드가 따로 작성되어 있지 않습니다.
그래서 해당 코드를 사용할 수 없습니다!
만약 사용하고 싶으시다면
__getitem__과 __setitem__이라는 별도의 함수를 정의해서
1) "학생목록[0] 했을 때 어떻게 될 것인가?"와
2) "학생목록[0] = 0 했을 때 어떻게 될 것인가?"를 정의해주셔야 합니다.
@@윤인성 답변 감사합니다. 지도랑 지도 사이의 깜깜했던 길이 연결된 느낌입니다.
선생님. 질문이 있습니다. 2:17에서 super().append 구문을 쓰셨는데, 부모 클래스는 리스트가 아닌, 단순히 데이터를 입력, 전달하는 부분만 있는데 어떻게 리스트 속성을 갖게 되는 건가요?
class StudentList(list)라는 코드로 리스트 클래스의 상속을 받았습니다!