【发布时间】:2020-05-10 17:17:30
【问题描述】:
我有两个 Point 对象,代码如下:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
a = Point(1, 3)
b = Point(4, 2)
max(a, b) # Make this output Point(4, 3)
我的问题是:“如何为将返回 Point(max(self.x, other.x), max(self.y, other.y)) 的 Point 类实现自定义 max 函数?” max 函数似乎只看__lt__ 并返回最高值。
【问题讨论】:
-
def max(self, other): return Point(max(self.x, other.x), max(self.y, other.y))? -
max(a, b)可以返回a或b- 它不能生成具有不同值的新点。 -
@furas 好吧,那太糟糕了。所以这是 Python 的限制?
-
@furas:至少是内置的
max。一个人可以写一个新的max,就像你在第一条评论中建议的那样,但不绑定到Point类。不过我不会推荐这个 -
每次只限两点吗?还是2或更多分?