其它内建函数的重写方法:
__abs__ abs(obj) 函数
__len__ len(obj) 函数(必须返回整数)
__reversed__ reversed(obj) 函数(必须返回可迭代对象
__round__ round(obj) 函数
class MyList: def __init__(self, iterable=()): self.data = [x for x in iterable] def __repr__(self): return "MyList(%s)" % self.data def __len__(self): return len(self.data) def __abs__(self): l = [] for x in self.data: if x < 0: y = -x l.append(y) else: l.append(x) self.data = l return MyList(self.data) myl = MyList([1,2,-3,4,-5]) print(myl) print(len(myl)) print(abs(myl)) 输出结果; tarena@tedu:~/zengsf/827$ python3 exercise827_2.py MyList([1, 2, -3, 4, -5]) 5 MyList([1, 2, 3, 4, 5])