У меня есть класс питона объявил как следующий в модулеPython 3.2.2 пользовательский объект Comparation не удается
class Position:
def __init__(self, x, y):
self.x = int(x)
self.y = int(y)
def __str__(self):
return self.toString()
def toString(self): #deprecated
return "{x:"+str(self.x)+" y:"+str(self.y)+"}"
Теперь, позже в основной программе, я делаю Comparation так:
can_pos = somestreet.endOfStreet(curPos).getPos() #returns a Position object
if(can_pos == atPos): # this returns False
#blafoo
#if(can_pos.x == atPos.x and can_pos.y == atPos.y): #this returns True (and is expected)
Я не понимаю, что может быть причиной различного поведения ...
было бы очень хорошо, если бы кто-то может дать мне намек на что :)
Заранее спасибо
Вы писали методы сравнения? '__eq__'? '__ne__'? и т. д. Если вы не писали какие-либо методы сравнения, как вы думаете, что сравнение должно работать? –
спасибо, исправил. из cpp;) – Julian
@ S.Lott no Я не писал их, я думал, что python будет сравнивать все атрибуты по умолчанию – Julian