Python: Comment puis-je hériter du type de liste intégré?

Je tiens à ajouter quelques attributs à la list type, j'ai donc écrit ceci:

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

mais my_list contient uniquement l'élément 'FirstMen'. Pourquoi mon __new__ ne fonctionne pas ici? Et comment dois-je hériter d'un type comme list? Est-il de même pour l'immuable des types comme str?

source d'informationauteur PJ.Hades