inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

MetaClass 3_3에서 질문입니다.

187

kks99502

작성한 질문수 14

0

def cus_mul(selfd):
    for i in range(len(self)): 
        self[i] = self[i] * d

def cus_replace(selfoldnew): 
    while old in self:
        self[self.index(old)] = new
    
CustomList1 = type(
                'CustomList1',
                (list,),
                {
                    'desc':'커스텀 리스트1',
                    'cus_mul':cus_mul,
                    'cus_replace': cus_replace
                }
            )

c1 = CustomList1([1,2,3,4,5,6,7,8,9])
print('Ex1 > ', c1)
print('궁금한 점 > ', c1.__dict__)

이렇게 코딩을 했을 경우 

첫번째 Print문의 결과값은 [1,2,3,4,5,6,7,8,9]

두번째 Print문의 결과값은 {} 이렇게 나옵니다.

수업시간에 c1으로 인스턴스화 과정에서 [1,2,3,4,5,6,7,8,9]를 인자로 전달하면서 초기화 하였다고 말씀 해주셨는데

c1의 namespace를 확인해보니 빈 딕셔너리로 출력이 되었습니다. 

c1에 인스턴스화 시점에 __call__ 함수를 통해서 [1,2,3,4,5,6,7,8,9]가 전달되어 print('Ex1 > ', c1)을 실행 했을 때 출력된다는 것을 이해했습니다.

그런데 [1,2,3,4,5,6,7,8,9]는 어디에 기억되어 있는 건가요?  

python

답변 1

0

좋은사람

안녕하세요.

뒤 부분에 배울 메타클래스를 상속해서 배우는 __new__ 메소드 등에서

넘어오는 인자를 출력하시면 값이 어디 시점에 저장되는지 알 수 있습니다.

감사합니다.

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

0

56

2

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

0

72

2

메타클래스 오류가 납니다

0

76

2

_ _ 관련 질문

0

70

1

변수 앞 _ 하나를 사용할때

0

141

2

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

0

499

2

이미지 에러 발생

0

318

1

에러발생합니다2

0

258

1

Error발생합니다1

0

285

1

pypi 배포 중 에러 발생

0

531

2

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

0

467

2

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

0

270

1

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

0

282

1

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

0

489

1

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

0

341

1

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

1

499

3

gitignore 파일이 없어요

0

318

1

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

0

269

1

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

0

351

1

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

1

567

2

s1, s2 점수 확인

0

460

2

질문

0

266

2

descriptor 변수 공유문제

0

280

1

multipledispatch 에러

0

391

1