36.8 연습문제를 풀다가 궁금한 점이 생겼습니다.
, 이 현성님이 작성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에 관련 내용이 존재하는지 궁금합니다. 읽어주셔서 감사합니다.
Re: 36.8 연습문제를 풀다가 궁금한 점이 생겼습니다.
, 도장_ 관리자님이 작성>>> x = list([1, 2, 3, 1, 2, 3, 1, 2, 3])
>>> x
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> y = [1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> y
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>
파이썬의 기본 리스트도 list로 리스트를 만들 수 있습니다.
list를 상속해서 만든 AdvancedList로 리스트를 만든 겁니다.
UNIT 36을 복습하거나 어려우면 책을 학습하고 나중에 다시 복습하는 게 좋을 것 같습니다.