Подтвердить что ты не робот

Как переопределить 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?

Заранее спасибо

4b9b3361

Ответ 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