我想要一个类Inf
,以便可以编写类似的代码
>>> class Inf:
... pass # TODO
...
>>> Inf > 3
True
我知道我可以做到
>>> class Inf:
... def __gt__(self, other):
... return True
... def __lt__(self, other):
... return False
... def __eq__(self, other):
... return type(self) == type(other)
...
>>> inf = Inf()
>>> inf > 3
True
但是我希望类本身能够与int
进行比较,而不是实例能够与{ {1}}个。
我希望能够int
而不是Inf > 3 # True
。
这是我的尝试,不起作用:
Inf() > 3 # True
Halp plz!
答案 0 :(得分:1)
这几乎是不可能的,因为Inf
是type
的实例,因此您要比较type
和int
的实例,因此方法{{1 __gt__()
中的}}在这种情况下是没有用的。
而且我不知道有没有避免使用的理由:
Inf
因此,如果您确实需要比较class Inf:
@classmethod
def __gt__(cls, other):
return True
inf = Inf()
print(inf > 3)
,请尝试编写一个class
的子类,该子类具有被覆盖的type
方法:
__gt__()