인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

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

매직 메소드(1-2)

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

작성

·

194

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__메소드가 호출되는 이유가 무엇인가요??

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

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

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

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

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

질문하기