• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

매직메소드 관련 질문입니다.

20.03.22 15:15 작성 조회수 93

0

def __add__(self,x):

    return self._price + x._price

를 하면 선언한대로 두 가지 과일의 가격을 더하는 것은 알겠는데

세 가지 과일을 설정해서 가격을 모두 더하려고 s1+s2+s3를 해보니 에러가 뜨는데

3개 이상의 과일 가격을 더하려면 저 코드를 어떻게 수정해야 될까요??

답변 2

·

답변을 작성해보세요.

0

novice님의 프로필

novice

질문자

2020.03.23

    def __add__(self, *args):      

        print('Called >> __add__')

        result=self._price

        for x in args:

            result=result+x._price

        return result

더하는 개수를 정하지 않고 원하는만큼 더하고 싶어서 저렇게 코드를 작성해봤는데요

저렇게 하면 print(s1+s2+s3)처럼 +는 못 사용하고 __add__를 사용해야만 작동이 되던데 +를 써서 할 방법은 없을까요??

0

네 안녕하세요 .유현님

편하게 생각하시면 됩니다.

def __add__(self, x, y,z) 등으로 원하시는 객체 파라미터를 지정하셔서 사용하시면 됩니다.