如何覆盖`is`运算符

sat*_*oru 3 python operators

可能重复:
python:类覆盖"是"行为

我试图覆盖is运算符,以便我可以做类似的事情

if tom is writer:
   print 'tom is writing'
elif tom is programmer:
   print 'tom is programming'
Run Code Online (Sandbox Code Playgroud)

这在python中可能吗?

cod*_*ior 5

据我所知,你不能覆盖'是',因为它通过比较它们的内存地址(即指针比较)来测试两个对象是否是同一个对象.您可能希望通过实现tom的__eq__方法来覆盖'==' .