• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

3개 이상의 연산인경우 프로세스가 궁금합니다.

20.07.14 00:32 작성 조회수 168

0

object.__add__(selfother)

예제 따라서 해보다가 궁금한데요. 인자가 2개밖에 없으니 3개 이상인 경우를 연산할려고 하니까 에러가나서요.

매직메소드를 클래스안에 구현해놓지 않으면 3개이상이 저절로 되는데 .. 찾아봐도 잘 나오지가 않더라구요. 어떻게 되는건지 궁금합니다.

답변 3

·

답변을 작성해보세요.

0

박경서님의 프로필

박경서

2021.09.13

def __add__(self, other):
return Fruit('{} + {}'.format(self._name, other._name) ,self._price + other._price)
 
print('total price : {}'.format((s1 + s2 + s3)._price))

0

코딩새싹님의 프로필

코딩새싹

2021.01.15

#기존 매직메소드 밑에 추가로

def __add__(self, x):

        print('Called >> __add__ Method.')

        return self._price + x._price

#62번째라인에 s3을 입력후

s3 =  Fruit('Apple', 1000)

#73번째라인에 

print(s1 + s2 + s3)

입력하면 에러 난다고 윗분이 질문하신 것 같은데 ,

저도 해결책이 궁금해서 질문드립니다.

0

메직메소드 멀티 연산자를 받으실 때는

아래와 같이 팩킹 언패킹 등으로 dict , tuple로 받으시는게 좋습니다.

>>def test(*args, **kwargs):
>>    print args # list of positional parametrs
>>    print kwargs # dict of named parametrs

>>test(1, 2, test_param='t')
[1, 2]
{test_param: 't'}