Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在google app engine数据模型类型中重写equals()?_Python_Google App Engine_Web Applications - Fatal编程技术网

Python 如何在google app engine数据模型类型中重写equals()?

Python 如何在google app engine数据模型类型中重写equals()?,python,google-app-engine,web-applications,Python,Google App Engine,Web Applications,我正在使用Google App Engine的Python库。如何重写类上的equals()方法,以便它判断以下类的user\u id字段是否相等: class UserAccount(db.Model): # compare all equality tests on user_id user = db.UserProperty(required=True) user_id = db.StringProperty(required=True) first_nam

我正在使用Google App Engine的Python库。如何重写类上的
equals()
方法,以便它判断以下类的
user\u 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\u id==user2.user\u id
来执行相同的操作。是否有一种方法可以覆盖它,以便“user1==user2”只查看“user\u id”字段


提前感谢您

覆盖运算符
\uuuu eq\uuuu
(==)和
\uu ne\uuuu
(!=)

e、 g


您不需要重写ne-默认实现IIRC调用eq。同时,从对内置方法的调用返回异常类?世界跆拳道联盟?举起来@Nick Johnson,很抱歉,您在这两种情况下都错了,NotImplemented不是异常读取,请尝试删除
\uu ne\uu
打印用户帐户()==UserAccount(),UserAccount()!=UserAccount()
打印
True
:)@Nick Johnson还解释了为什么未实现而不是未实现的错误。你在这两方面都完全正确,而我错了。至少我学到了一些新东西!:)谢谢你们,你们帮了大忙。
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