Python 文档声明x==y并不意味着x=y、 这是真的吗?
正如疑问句所述,python文档陈述了一条相当矛盾的路线。有问题的线路可以在上找到 这句话相当直截了当地说: “比较运算符之间没有隐含关系。x==y的真值并不意味着x!=y为假。”Python 文档声明x==y并不意味着x=y、 这是真的吗?,python,boolean-logic,Python,Boolean Logic,正如疑问句所述,python文档陈述了一条相当矛盾的路线。有问题的线路可以在上找到 这句话相当直截了当地说: “比较运算符之间没有隐含关系。x==y的真值并不意味着x!=y为假。” Python中是否有一条语句满足了这一要求?或者它仅限于复杂的gotcha代码。一个例子,其中==和!=事实是这样的 class MyClass: def __init__(self): pass def __eq__(self, other): return Tr
Python中是否有一条语句满足了这一要求?或者它仅限于复杂的gotcha代码。一个例子,其中==和!=事实是这样的
class MyClass:
def __init__(self):
pass
def __eq__(self, other):
return True
def __ne__(self, other):
return True
b1 = MyClass()
b2 = MyClass()
print b1 == b2
print b1 != b2
上面的两行都将打印True示例,其中==和!=事实是这样的
class MyClass:
def __init__(self):
pass
def __eq__(self, other):
return True
def __ne__(self, other):
return True
b1 = MyClass()
b2 = MyClass()
print b1 == b2
print b1 != b2
上面的两行都将打印为True请继续阅读:“因此,在定义
\uuuuuueq\uuuuuo()
时,还应定义\uuuuu ne\uuuuuo()
,以便运算符按预期操作。”此语句参考在类中定义\uuuuuuuuuuuueq\uuuuuuo()
和\uuuuu ne\uuuuuuu()
。您应该始终同时定义这两种类型。这意味着您可以定义自己的类型来实现声明。请继续阅读:“因此,在定义\uuuuueq\uuuo()
时,还应该定义\uuu ne\uuuuuo()
,以便运算符按照预期的方式运行。”此语句参考定义\uuuuuueq\uuuo()
和\uuuu ne\uuo()
在课堂上。您应该始终同时定义这两种类型。这意味着您可以定义自己的类型来实现声明。出于某种原因,我不知道您可能会在Python中重载运算符。谢谢你的澄清。@MatthewMuller:你引用的文档部分正是关于重载运算符的。@BrenBarn:这是我盲目阅读文档的一次。奇怪的事情发生了。出于某种原因,我不知道你可以在Python中重载操作符。谢谢你的澄清。@MatthewMuller:你引用的文档部分正是关于重载运算符的。@BrenBarn:这是我盲目阅读文档的一次。奇怪的事情发生了。