Я хочу добавить некоторые атрибуты к встроенному типу 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
?