对。当’min’接受一个参数时,它假定它是iterable,然后迭代 然后取最小值。所以,
class A:
def __init__(self, a, b):
self.a = a
self.b = b
def __iter__(self):
yield self.a
yield self.b
Should work.
附加说明:如果你不想使用iter,我不知道怎么做 就这么做吧。您可能想创建自己的min函数,该函数调用 `_如果传递给的参数中有一个参数,则调用 旧的’min’else。
oldmin = min
def min(*args):
if len(args) == 1 and hasattr(args[0], '_min_'):
return args[0]._min_()
else:
return oldmin(*args)