Python: Как я могу наследовать от встроенного типа списка?

Я хочу добавить некоторые атрибуты к встроенному типу list , поэтому я написал следующее:

class MyList(list):
    def __new__(cls, *args, **kwargs):
        obj = super(MyList, cls).__new__(cls, *args, **kwargs)
        obj.append('FirstMen')
        return obj

    def __init__(self, *args, **kwargs):
        self.name = 'Westeros'

    def king(self):
        print 'IronThrone'

if __name__ == '__main__':
    my_list = MyList([1, 2, 3, 4])
    print my_list

но my_list содержит только элемент 'FirstMen' . Почему мой __ новый __ здесь не работает? И как мне наследовать от встроенного типа, такого как list ? То же самое для неизменяемых типов, таких как str ?

16
задан PJ.Hades 24 February 2012 в 14:50
поделиться