inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

매직 메소드(1-2)

메소드의 호출에 관한 질문입니다

226

vpdtlrdl

작성한 질문수 45

1

안녕하세요

강의에서 만든 매직 메소드에서 호출에 관한 질문입니다. __str__ 메소드의 호출에 대해서 궁금한 점이 있는데요, 

class Fruit:
    def __init__(selfnameprice):
        self.name = name
        self.price = price

    def __str__(self):
        return 'Fruit Class Info : {} , {}'.format(self.nameself.price)
# 인스턴스 생성
s1 = Fruit('Orange'7500)
s2 = Fruit('Banana'3000)

다음과 같이 인스턴스를 생성한 후, 

print(s1)을 출력하니 __str__메소드가 호출된 것을 확인할 수 있었습니다. 

인자들이 할당되는 과정을 생각해보면, print(s1)은 결국 print(s1.__str__())과 같은 과정이라고 생각이 되는데요,  

print(str(s1)) 이 print(s1.__str__())과 같은 원리인 것은 이해가 가지만,

print(s1)만 호출했는데도 __str__메소드가 호출되는 이유가 무엇인가요??

python django

답변 1

0

좋은사람

네 더 하위레벨에서 str 메소드가 출력되 되도록 언어 자체가 구현되었기 때문이예요

나중에 level3 고급 과정에서 파이썬 메타프로그래밍을 배우시면 어느정도 알게 되실거예요.

즉, 매직매소드가 자동으로 str 호출되게 구현되었다 라고 이해하시면 됩니다.

진도미확인 (진도가 안 넘어감)

0

51

1

RuntimeError: There is no current event loop in thread 'MainThread'

0

95

1

chapter 07-01 실행 오류

0

78

1

Chapter05-04 : sum_func의 합이 이중 출력됩니다.

0

90

2

45. 병렬성 2 - Futures(5-1) wait가 의도된 대로 동작하지 않습니다.

0

109

2

멀티스레딩 - 44. 병렬성 1 - Futures(4-2)

0

81

2

chapter05_02 클로저 질문사항 !

0

61

1

LV1 설정

0

95

2

매직 메소드의 호출 방법 차이 문의

0

140

2

왜 numbers리스트를 만들때 str으로 숫자를 감싸나요?

0

106

2

스크랩핑 실습 중 Mac OS 인증서 문제

0

137

1

AsyncIO 멀티 스크랩핑 실습 예제 관련 질문

0

178

1

강의자료가 영상과 다릅니다

0

262

2

closure.cell_contents 초기화 하기 문의

0

139

2

map함수 사용 시, list변환 방법 문의

0

353

2

__mul__ 백터 * 숫지, 백터 * 백터 처리

0

150

1

del처리후 질문입니다.

0

163

1

car_list(car1,car2,car3) 인스턴스 tuple 타입 문의

0

235

1

coroutine에 대한 질문

0

251

1

제너레이터 이터레이터 질문이 있습니다.

0

258

1

atom install package search not working

0

283

1

Magic Method - Not Implemented

0

405

1

가상환경 질문!

0

410

1

병렬처리 추가 질문이 있습니다.

0

254

1