• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

21.07.30 17:46 작성 조회수 132

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 호출되게 구현되었다 라고 이해하시면 됩니다.