Hi,<br><br>u have the answer in ur question itself :) u dont need to redefine list methods again - just inherit from the builtin-list-type.<br><br>try this with new style classes:<br><br>#### code ###<br>class Point(list):
<br>    def __init__(self,x,y):<br>        super(Point, self).__init__()<br>        self.x
 = x<br>        self.y = y<br>     <br>     <br>p  = Point(2,3)<br>print dir(p)<br>print type(p)<br>#### code ####<br><br>regards<br>KM<br>----------------------------------------------------------------------------------------------
<br><div><span class="gmail_quote">On 23 May 2007 09:58:36 -0700, <b class="gmail_sendername">Mangabasi</b> <<a href="mailto:mangabasi@gmail.com">mangabasi@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Howdy,<br><br>I would like to create a Point class that lets me use Point instances<br>like the following example.<br><br>>>> p = Point(3, 4)<br>>>> p.x<br>3<br>>>> p.y<br>4<br>>>> p.z<br>
1<br>>>> p[0]<br>3<br>>>> p[1]<br>4<br>>>> p[1] = 5<br>>>> p.y<br>5<br>>>><br><br>other than the x, y, z attributes, these instances should behave like<br>regular Python lists.  I have created something like :
<br><br>class Point:<br>    def __init__(self, x, y, z = 1):<br>        self.list = [x, y, z]<br><br>    def __repr__(self):<br>        return str(self.list)<br><br>    def __str__(self):<br>        return str(self.list)<br>
<br>    def __getattr__(self, name):<br>        if name == 'x':<br>            return self.list[0]<br>        elif name == 'y':<br>            return self.list[1]<br>        elif name == 'z':<br>            return 
self.list[2]<br>        else:<br>            return self.__dict__[name]<br><br>    def __setattr__(self, name, value):<br>        if name == 'x':<br>            self.list[0] = value<br>        elif name == 'y':
<br>            self.list[1] = value<br>        elif name == 'z':<br>            self.list[2] = value<br>        else:<br>            self.__dict__[name] = value<br><br>    def __getitem__(self, key):<br>         return 
self.list[key]<br><br>    def __setitem__(self, key, value):<br>            self.list[key] = value<br><br>    def __getslice__(self, i, j):<br>        return self.list[i : j]<br><br>    def __setslice__(self, i, j, s):<br>
        self.list[i : j] = s<br><br>    def __contains__(self, obj):<br>        if obj in self.list:<br>            return True<br>        else:<br>            return False<br><br><br>There must be a way to inherit from the list type without having to
<br>redefine all the methods and attributes that regular lists have.<br><br>i.e.<br><br>class Point(list):<br>   ...<br><br><br>Can someone provide an example?<br><br>Thanx in advance<br><br>--<br><a href="http://mail.python.org/mailman/listinfo/python-list">
http://mail.python.org/mailman/listinfo/python-list</a><br></blockquote></div><br>