게시판
검색 결과: 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에 관련 내용이 존재하는지 궁금합니다. 읽어주셔서 감사합니다.
, you hyojin님이 작성
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로 값을 받아서 사용할 수 있는지 너무 궁금합니다...