inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)

Meta Class(3)

list에 대해서 질문입니다.

186

김영빈

작성한 질문수 49

0

안녕하세요? 강의 잘 듣고 있습니다. 조금 어렵지만요 ㅠㅠ
오늘 강의를 듣다보니 위의 사진과 같은 코드를 작성해주시는 부분이 있었습니다.(혼자 만들어보다 보니,강의떄와 정확하게 일치하지는 않습니다.)
type을 활용해서 메타클래스를 만드는 내용이였는데요,
 
1.사진에서 보면 c1 = CustomList1([1,2,3,4..9])로 바로 인스턴스가 생성이 되더군요.
__init__이나 이런걸 활용해서 메소드를 정의해주거나 그런게 아닌데도,
Customlist가 [1,2,3,4,5..9]를 인자로 받을 수 있는 이뉴는 list클래스를 상속받았기 때문인가요?
' list를 생성할 때, A = list([1,2,3,4,5])와 같은 식으로 할 수 있었고 > 그런 list를 상속받았으니 > Customlist도 그런게 가능하다'
로 생각을 해도 괜찮을까요?
 
2.
앞의 질문과 이어지는 질문입니다.
 
A = list([1,2,3,4,5]) 라는 리스트의 인스턴스가 만들어질 때,
제가 수업을 듣고 또 공부해본 바로는
type.__call__이 호출되고,
type.__call__에 의해list. __new__와 list.__init__가 차례로 호출되어 A라는 인스턴스객체가 만들어진다고 이해했습니다.
 
그래서 인스턴스 A가 생성될 때 인자로 받은 [1,2,3,4,5]가, 어떻게 인자로 받을 수 있고 또 어떻게 전달되는지를 알고 싶어서 찾아봤더니
type의 __call__이 *args형태로 받아주더군요
그러면 list의 __new__랑 __init__을보면 이 *args가 어떻게 처리되는지를 알겠다 싶어서 찾아봤는데.. 여기서 막히더군요..
list에 __init__메소드가 있긴 한데
또 list에는 __new__가 없어서, 어떻게 찾아야 할지도 모르겠구요 ..
여기서 좀 더 찾아보려 하는데.. 어떻게 더 찾아봐야 될지 모르겠습니다. 혹시 어떤식으로 찾아나가야 할지 키워드를 좀 던져주실 수 있으신가요 ㅠㅠ

python

답변 1

0

좋은사람

안녕하세요.

1. 맞습니다. 상속때문이예요.

2. 뒷 부분에서 클래스 생성 라이프라이클 까지 수업을 들으시고 고민하셔도 될 것 같아요.

0

김영빈

감사합니다~

강의자료가 모두 동일한 PPT 입니다. 잘못 등록된것 같습니다.

0

71

2

나만의 패키지 만들기(1) 강의 결과물에서 이미지가 겹치는 문제는 다음과 같이 수정할 수 있을 것 같습니다

0

78

2

메타클래스 오류가 납니다

0

85

2

_ _ 관련 질문

0

77

1

변수 앞 _ 하나를 사용할때

0

149

2

가상환경 설정 시 vscode 실행 오류

0

545

2

이미지 에러 발생

0

329

1

에러발생합니다2

0

263

1

Error발생합니다1

0

294

1

pypi 배포 중 에러 발생

0

540

2

강의 부분이 틀렸네요. 수정 요청드려요!

0

477

2

logging print 순서에 대한 질문입니다.

0

275

1

@contextlib.contextmanager 어노테이션, 데코레이터

0

287

1

mount라는 의미가 정확히 무엇인지 모르겠습니다.

0

510

1

파이썬 lv3 의 py_ad_4_2.py 에서 Image를 열기만 하고 닫지는 않으셨습니다.

0

345

1

오픈소스참여-나만의 패키지 만들기

1

509

3

gitignore 파일이 없어요

0

319

1

property 사용시 동명의 속성이 이미 존재하면 어떻게 되나요?

0

275

1

variable scope 강의 Ex8 질문드립니다.

0

355

1

오픈소스참여-나만의 패키지 만들기(1)

1

572

2

s1, s2 점수 확인

0

467

2

질문

0

269

2

descriptor 변수 공유문제

0

284

1

multipledispatch 에러

0

397

1