我正在使用Google App Engine的Python库。我怎么能覆盖 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'字段?
提前致谢
覆盖运算符 __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
覆盖运算符 __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