我可以理解一些语言允许用户做一些运算符重载。我首先在C ++领域知道这个。但是c ++对运算符重载也有一些限制,我认为这是合理的。
但是当我来到python pandams库时。我开始困惑了。
查看我的代码complaints['Complaint Type'] == "Noise - Street/Sidewalk"
不会返回True或False。
这对我来说很疯狂。有没有人可以帮我理解这个?
从链接中复制了一些相关结果:
>>> complaints['Complaint Type'] == "Noise - Street/Sidewalk"
0 True
1 False
2 False
3 False
4 False
...
111063 False
111064 False
111065 False
111066 True
111067 False
111068 False
Name: Complaint Type, Length: 111069, dtype: bool
答案 0 :(得分:3)
如果您创建自己的类并向其添加__eq__
方法,则可以重载运算符。
class MyClass(object):
def __eq__(self, other):
# compare self with other, return whatever you need
只要您将类型与self == other
进行比较,就会调用此方法。在python中从这个函数返回一个布尔值被认为是很正常的,所以如果你希望你的代码对其他开发人员有意义,你可能想要考虑返回其他任何东西。
请参阅此here
上的python 2文档