작성
·
249
답변 3
0
제가 많은 도움이 될지는 모르겠지만, __max__가 매직메소드가 아닌 것과 연관이 있는거 같네요
출력문을 print(Vector.__max__(v1,v2)) 로 클래스로 호출시에만 결과값이 출력되네요.
0
다른 예제는 모두 실행됐는데
max 한번 해보자 해서 해보니 안돼서요..
class Vector(object):
def __init__(self, *args):
'''
Create a Vector, example: v=Vector(5,10)
'''
if(len(args))==0:
self._x, self._y=0,0
else:
self._x, self._y=args
def __repr__(self):
'''Return the vector informations.'''
return 'Vector(%r, %r)' % (self._x, self._y)
def __add__(self, other):
return Vector(self._x + other._x, self._y + other._y)
def __mul__(self, other):
return Vector(self._x*other._x, self._y*other._y)
def __bool__(self):
return bool(max(self._x, self._x))
def __max__(self, other):
'''__max__'''
return Vector(max(self._x, other._x), max(self._y, other._y))
v1=Vector(1,5)
v2=Vector(3,4)
print(max(v1, v2))
---실행시 오류문
TypeError: '>' not supported between instances of 'Vector' and 'Vector'
0