是否可以使用is
运算符将Python类与“无”进行比较?
class DefaultValue:
def __init__(self, default, value=None):
self.default = default
self.value = value
def __str__(self):
return str(self.value or self.default)
def __eq__(self, other):
return self.value == other
def __hash__(self):
return hash(self.value)
d = DefaultValue(False)
str(d) # 'False'
d == None # True
d is None # False
我是否可以在该类上实现某些内容,以便与无相比,是运算符将返回 True ?
答案 0 :(得分:2)
https://docs.python.org/3/library/operator.html
按照其他运算符的类似语法,您将覆盖已定义的方法,可以为is_做一个。希望这会有所帮助!
答案 1 :(得分:1)
您不能重载is
运算符,因为它用于检查两个变量是否引用相同的值,您永远不需要重载。最相似的事情是使用==
方法重载__eq__
:
class MyClass:
def __eq__(self, other):
#code here