¿Cuál es el papel de las metaclases en Python?
clase Al ejecutar esta declaración, Python primero ejecuta el cuerpo de la declaración de clase como un bloque de código ordinario. El espacio de nombres generado (diccionario) conserva los atributos de clases futuras. Las metaclases se identifican observando la clase base de la clase que se va a procesar (la metaclase heredada), el atributo __metaclass__ (si lo hay) de la clase que se va a procesar o la variable global __metaclass__. Luego se crea una instancia de la metaclase llamando al nombre de la clase, la clase base y las propiedades. Sin embargo, las metaclases en realidad definen el tipo de clase, no sólo su fábrica, por lo que puedes hacer más con las metaclases. Por ejemplo, puedes definir métodos regulares en una metaclase. Estos métodos de metaclase son similares a los métodos de clase en que se pueden invocar en la clase sin una instancia, pero también se diferencian de los métodos de clase en que no se pueden invocar en instancias de la clase. type.__subclasses__() es un ejemplo de un método de metaclase de tipo. También puede definir métodos "mágicos" ordinarios como __add__, __iter__ y __getattr__ para realizar o cambiar el comportamiento de la clase.