【发布时间】:2010-11-12 01:26:58
【问题描述】:
我正在尝试覆盖 is 运算符,以便我可以执行类似的操作
if tom is writer:
print 'tom is writing'
elif tom is programmer:
print 'tom is programming'
这在 python 中可行吗?
【问题讨论】:
-
您的意思是“is”还是“isa”?这对我来说就像“isa”。
-
假设您的示例中的“tom”是一个对象,您不能只使用像 tom.is_writer() 和 tom.is_programmer() 这样的方法吗?
-
@uzi 在我的例子中,
writer和programmer是工作,它们太多了,无法在 tom 类中实现。目前我正在使用类似tom.works_as_a(writer)。 -
建议您将works_as_a() 替换为is_a()。不要覆盖语言基础的东西。