¿Se pueden anular los literales en Python?

No se pudo encontrar una manera de redactar mejor el título, no dude en corregirlo.

Soy bastante nuevo en Python, actualmente estoy experimentando con el lenguaje. Me he dado cuenta de que no se pueden extender todos los tipos incorporados con otros miembros. Me gustaría, por ejemplo, agregar uneach método para ellist Tipo, pero eso sería imposible. Me doy cuenta de que está diseñado de esa manera por razones de eficiencia, y que la mayoría de los tipos incorporados se implementan en C.

Bueno, una de las razones por las que descubrí que anular este comportamiento es definir una nueva clase, que se extiendelist pero por lo demás no hace nada. Entonces puedo asignar la variablelist a esa nueva clase, y cada vez que me gustaría crear una instancia de una nueva lista, uso lalist constructor, como se habría utilizado para crear el originallist tipo.

class MyList(list):
    def each(self, func):
       for item in self:
           func(item)
list = MyList

my_list = list((1,2,3,4))
my_list.each(lambda x: print(x))

Salida:

1
2
3
4

La idea puede generalizarse, por supuesto, definiendo un método que obtiene un tipo construido y devuelve una clase que extiende ese tipo. Además, el original.list La variable se puede guardar en otra variable para mantener un acceso a ella.

El único problema al que me enfrento ahora mismo es que cuando creas una instancia delist por su forma literal, (es decir,[1,2,3,4]), todavía utilizará el constructor de listas original (o lo hace?). ¿Hay una manera de anular este comportamiento? Si la respuesta es no, ¿conoce alguna otra forma de permitir que el usuario extienda los tipos incorporados? (Al igual que javascript permite extender prototipos incorporados).

Considero que esta limitación de incorporaciones (al no poder agregarles miembros) es uno de los inconvenientes de Python, lo que la hace inconsistente con otros tipos definidos por el usuario ... En general, me encanta el idioma y realmente no entiendo por qué esto La limitación es REALMENTE necesaria.

Respuestas a la pregunta(1)

Su respuesta a la pregunta