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

SeokJae Hong님의 프로필 이미지
SeokJae Hong

작성한 질문수

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

매직 메소드(1-2)

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

작성

·

284

0

object.__add__(selfother)

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

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

답변 3

0

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

0

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

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'}
SeokJae Hong님의 프로필 이미지
SeokJae Hong

작성한 질문수

질문하기