Tipo de subclasificación vs objeto en Python3 [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Python Type System - Objeto vs Tipo 2 respuestasCuáles son exactamente los "objetos" tipo Python? 3 respuestas¿Cómo implementa Cpython su tipo Objetos, es decir, el tipo siempre es tipo? 1 respuesta He estado leyendo sobre metaclases y me perdí cuando se trataba detype
yobject,
clases.
Entiendo que están en la parte superior de la jerarquía y están implementados en código C. También entiendo quetype
hereda deobject
y esoobject
es una instancia detype
.
En uno de los respuestas He encontrado en SO, alguien dijo, en relación conobject-type
relación - eso:
ste tipo de herencia mutua normalmente no es posible, pero así es para estos tipos fundamentales en Python: rompen las reglas.
Mi pregunta es por qué se implementa de esta manera, ¿cuál es el propósito de dicha implementación? ¿Qué problemas resuelve / cuáles son los beneficios de este diseño? ¿No podría ser solotype
o soloobject
clase que está en la parte superior de la jerarquía de la que hereda cada clase?
Finalmente, ¿hay alguna diferencia entre la subclasificación deobject
vs subclases detype
, ¿y cuándo querría usar uno sobre el otro?
class Foo(object):
pass
vs
class Foo(type):
pass