生产质量“最小”和“最大”对象(改编自PEP 326)
Extremes的Python项目详细描述
peak.util.extremes模块提供生产质量实现 来自PEP 326的Min和Max对象。而pep 326被拒绝了 为了包含在语言或标准库中,其中描述的对象 在各种应用中都很有用。在巅峰时期,他们已经习惯了 实现一般功能(在ruledispatch和peak规则中),以及 处理网格中的调度和时间操作。因为这导致了 每个项目都复制相同的代码,我们现在已经将模块分离出来,这样它就可以 独立使用。
一些简单的用法示例:
>>> from peak.util.extremes import Min, Max >>> import sys >>> Min < -sys.maxint True >>> Min < None True >>> Min < '' True >>> Max > sys.maxint True >>> Max > 99999999999999999 True >>> type(Min) <class 'peak.util.extremes.Extreme'>
Min对象比任何其他对象都要小,但比它自己小,而 Maxobject比任何其他对象都大,但比它自己大。两者都是 Extreme类型的实例。
虽然最初的pep 326对这些极值的实现更短 与此处使用的版本相比,它包含一个缺陷:它不能正确处理 与经典类实例的比较。因此,这个版本定义了 所有六个富比较运算符的方法,以确保正确支持 经典和新式课程:
>>> Max >= Min and Max > Min and Max==Max and Max!=Min True >>> Max < Min or Max <= Min or Max==Min or Max!=Max False >>> Min <= Max and Min < Max and Min==Min and Min!=Max True >>> Min > Max or Min >= Max or Min==Max or Min!=Min False >>> class X: ... """Ensure rich comparisons work correctly with classic classes""" >>> x = X() >>> Min<x<Max and Min<=x<=Max and Min!=x!=Max and Max!=x!=Min True >>> Min>x or x>Max or x<=Min or x>=Max or x==Min or Min==x False