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.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to