在Python 3中,我创建了一个自定义类C,用于特定的数据结构,并且可以用作可迭代对象。但是该类确保对于任何数据结构c of C,c[0]将是c中所有值的最小值。是否有一种方法可以调用min(c),仅返回c[0],而不会无用地探索整个结构?(如果c为空,则像通常一样引发ValueError)
>>> class C(object):
... def __init__(self):
... self.index = 0
... self.iterable = range(10)
... def __iter__(self):
... return self
... def min(self):
... try:
... return self.iterable[self.index]
... except IndxError:
... raise Exception('The index is out of range')
>>> c=C()
>>>
>>> c.min()
0
>>> c.iterable=[5,1,4,8]
>>> c.min()
5
min
函数指定一个默认索引来返回相对项目。
min()
基本上用于多个对象(或列表/可迭代对象)。是否更好地定义一个实例方法min()
并从中返回c[0]
。然后调用c.min()
而不是min(c)
。 - Anand S Kumarnext
替代min
。 - Peter Wood