内建函数的重写
Posted zengsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内建函数的重写相关的知识,希望对你有一定的参考价值。
其它内建函数的重写方法:
__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)) 输出结果; [email protected]:~/zengsf/827$ python3 exercise827_2.py MyList([1, 2, -3, 4, -5]) 5 MyList([1, 2, 3, 4, 5])
以上是关于内建函数的重写的主要内容,如果未能解决你的问题,请参考以下文章
Python中常用内建属性:__getattribute__属性拦截器使用详解
Python常用内建方法:__init__,__new__,__class__的理解