게시판

검색 결과: 12

, 이 현성님이 작성
 

36.8 연습문제를 풀다가 궁금한 점이 생겼습니다.

class AdvancedList(list):
    def replace(self,old,new):
        while old in self:
            self[self.index(old)] = new
x = AdvancedList([1, 2, 3, 1, 2, 3, 1, 2, 3])
x.replace(1, 100)
print(x)

우선 첫번째로 AdvancedList(list)가 상속을 나타내는건데 AdvancedList([1,2,3,1,2,3,1,2,3])을 보면 매개변수같은 역할을 한다고 봐도 되는건가요? x = AdvancedList([1,2,3,1,2,3,1,2,3]) 를 하고 x.replace(1,100)을 실행하지 않고바로 print(x)를 실행시 [1,2,3,1,2,3,1,2,3] 출력 되는게 이해가 잘 되지 않습니다. x가 AdvancedList의 인스턴스 인건 알겠는데 왜 x를 출력하면 [1,2,3,1,2,3,1,2,3]이 나오는 건가요. 부모클래스인 list에 관련 내용이 존재하는지 궁금합니다. 읽어주셔서 감사합니다.


 
36.8 연습문제: 리스트에 기능 추가하기에서

모범 답안에서

class AdvancedList(list):

    def replace(self, old, new):

        while old in self:

            self[self.index(old)] = new

                

x=AdvancedList([1,2,3,1,2,3,1,2,3])

x.replace(1,100)

print(x)

x를 인스턴스로 만들어 줄때 클래스 내부에 init없는데 어떻게 변수를 넘겨주는지 궁금합니다. x.replace에서도 왜 self로 값을 받아서 사용할 수 있는지 너무 궁금합니다...