zoukankan      html  css  js  c++  java
  • 内建函数的重写

    其它内建函数的重写方法:
    __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])
  • 相关阅读:
    BZOJ
    BZOJ
    BZOJ
    BZOJ
    BZOJ
    BZOJ
    [知识点]平衡树之Splay
    [BZOJ1015/JSOI2008]星球大战
    [知识点]状态压缩DP
    [NOIP2011]聪明的质检员
  • 原文地址:https://www.cnblogs.com/zengsf/p/9551295.html
Copyright © 2011-2022 走看看