Как переопределить equals() в типе данных модели движка google?
Я использую библиотеки Python для Google App Engine. Как я могу переопределить метод equals()
для класса, чтобы он оценивал равенство в поле user_id
следующего класса:
class UserAccount(db.Model):
# compare all equality tests on user_id
user = db.UserProperty(required=True)
user_id = db.StringProperty(required=True)
first_name = db.StringProperty()
last_name = db.StringProperty()
notifications = db.ListProperty(db.Key)
Прямо сейчас я выполняю равенство, получая объект UserAccount
и выполняя user1.user_id == user2.user_id
. Есть ли способ переопределить его так, чтобы user1 == user2 смотрел только поля user_id?
Заранее спасибо
Ответы
Ответ 1
Операторы переопределения __eq__
(==) и __ne__
(! =)
например.
class UserAccount(db.Model):
def __eq__(self, other):
if isinstance(other, UserAccount):
return self.user_id == other.user_id
return NotImplemented
def __ne__(self, other):
result = self.__eq__(other)
if result is NotImplemented:
return result
return not result