AttributeError functools.total_ordering

时间:2014-12-18 03:01:42

标签: python python-3.1

以下是我的代码段。当我运行该程序时,它给我以下错误。

 @functools.total_ordering
 AttributeError: 'module' object has no attribute 'total_ordering'

我正在使用python 3.1

import functools

@functools.total_ordering
class Abs(object):
    def __init__(self,num):
        self.num=abs(num)
    def __eq__(self,other):
        return self.num==abs(other.num)
    def __lt__(self,other):
        return self.num < abs(other.num)

five=Abs(-5)
four=Abs(-4)
print(five > four)

import语句中是否缺少某些内容?

1 个答案:

答案 0 :(得分:2)

不,你的进口声明没问题。问题是你的Python安装背后是一个版本。在Python 3.2中添加了functools.total_ordering。来自docs

  

3.2版中的新功能。

     

在版本3.4中更改:从基础版返回NotImplemented   现在支持无法识别类型的比较功能。

所以,你需要upgarde才能使用它。如果那是不可能的,那么您只需手动定义所有比较运算符。

请注意,此装饰器也向后移植到Python 2.7,但我认为您希望保留Python 3.x。