Overload __len__ method for len function

Overload __len__

__len__(self) returns the number of items contained in the collection. If __len__ returns zero, the object is treated as false in a Boolean context.


class MyList:# from www . jav a  2 s .com
    def __init__(self, start):
        self.wrapped = []                        # Make sure it's a list here.
        for x in start: self.wrapped.append(x)
    def __add__(self, other):
        return MyList(self.wrapped + other)
    def __mul__(self, time):
        return MyList(self.wrapped * time)
    def __getitem__(self, offset):
        return self.wrapped[offset]
    def __len__(self):
        return len(self.wrapped)
    def __getslice__(self, low, high):
        return MyList(self.wrapped[low:high])
    def append(self, node):
        self.wrapped.append(node)
    def __getattr__(self, name):                 # Other members: sort/reverse/etc
        return getattr(self.wrapped, name)
    def __repr__(self):
        return self.wrapped

x = MyList('spam')
print x
print x[0]
print x[1:]
print x + ['eggs']
print x * 3
x.append('a')
x.sort( )
for c in x: print c,

The code above generates the following result.





















Home »
  Python »
    Language Basics »




Python Basics
Operator
Statements
Function Definition
Class
Buildin Functions
Buildin Modules