En Fri, 09 Mar 2007 21:25:24 -0300, Paulo da Silva  
<[EMAIL PROTECTED]> escribió:

> Thanks Gabriel. This sounds very nice for my purpose.
> I have some doubts however. How do I "transform" a list into
> MyList? Is this the best way?
>
> class MyList(list):
>       def __init__(self,l=None):
>               if l != None:
>                       self=copy(l) (or self.extend(l) - this does not need 
> copy module)
>
> Then I can do something like xl=MyList([ ... ])

Just omit the __init__ method, if you don't have anything additional to  
do. The inherited method will be used instead, as always:

py> class MyList(list):
...   def cdr(self):
...     return self[1:]
...
py> a = MyList([1,2,3])
py> a
[1, 2, 3]
py> type(a)
<class '__main__.MyList'>
py> a.cdr()
[2, 3]

> I read the description of __new__ but I didn't fully understand it and
> didn't find any examples on how it is used.
> Is it usable in this context? How?

Not really. Would be useful for a tuple (inmutable), because it has no  
__init__. But ask again when you really need it :)

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to