subclassing 'list'
James Stroud
jstroud at mbi.ucla.edu
Tue Jan 6 15:45:53 EST 2009
akineko wrote:
> Hello everyone,
>
> I'm creating a class which is subclassed from list (Bulit-in type).
>
> It works great.
> However, I'm having a hard time finding a way to set a new value to
> the object (within the class).
> There are methods that alter a part of the object (ex. __setitem__()).
> But I couldn't find any method that can replace the value of the
> object.
> I wanted to do something like the following:
>
> class Mylist(list):
>
> def arrange(self):
> new_value = ....
> list.self.__assign__.(self, new_value)
>
> I serached the newsgroup and found that assignment operator ('=')
> cannot be overridden because it is not an operator. But it shouldn't
> stop Python to provide a way to re-assign the value internally.
>
> Any suggestions will be highly appreciated.
>
> Best regards,
> Aki-
Slice assignment will behave as you like:
py> class Mylist(list):
... def arrange(self):
... new_value = [1, 2, 3]
... self[:] = new_value
...
py> m = Mylist()
py> m.arrange()
py> m
[1, 2, 3]
Your other option is to arrange the list in-place, depending on what it
means to arrange the list. You may want to provide a more explicit example.
More information about the Python-list
mailing list