我试图实现一些比较等于任何字符串的通配符类,但是对其他任何字符串都是false。但是,!=
运算符似乎没有按预期调用我的__neq__
成员:
class A(str):
def __cmp__(self, o):
return 0 if isinstance(o, str) else -1
def __eq__(self, o):
return self.__cmp__(o) == 0
def __neq__(self, o):
return self.__cmp__(o) != 0
a = A()
b = 'a'
print(a == b) # Prints True, as expected
print(a != b) # Prints True, should print False
我做错了什么?
答案 0 :(得分:13)