Tipo de sistema de Python – Objeto vs tipo

Soy nuevo en Python. Estoy familiarizado con Java, C / C ++ y OCaml. Entiendo Lambda Cálculo y la teoría de tipos elemental debido a un curso de Lenguajes de Progtwigción que tomé en la Universidad.

Armado con este fondo, traté de leer esto: http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html

En algún lugar abajo, él menciona esto:

  • (tipo ‘objeto’) es una instancia de (tipo ‘tipo’)
  • (tipo ‘objeto’) es una subclase de ningún objeto.
  • (tipo ‘tipo’) es una instancia de sí mismo.
  • (type’type ‘) es una subclase de (tipo’ objeto ‘)

No puedo envolver mi pobre cerebro alrededor de esto:

  • (tipo ‘objeto’) es una instancia de (tipo ‘tipo’)
  • (tipo ‘tipo’) es una subclase de (tipo ‘objeto’)

¿Qué diablos está pasando aquí? Lo que quiero escuchar es razones extremadamente profundas sobre qué es exactamente lo que está sucediendo aquí y por qué las cosas son como son. No hay razones superficiales o analogías por favor.

Está hablando específicamente sobre el type objeto. Para el type , todos los tipos heredan de .

Creo que la otra afirmación está simplemente señalando que es un object ; Un ejemplo que pensé al mirar más abajo:

 t = list.__class__ #  t.__bases__ # (,) 

Debido a que la noción de tipo es la misma que la clase, puede subclasificar el tipo con técnicas orientadas a objetos normales y la syntax de clase para personalizarlo.

Y como las clases son realmente instancias de la clase de tipo, la creación de clases a partir de subclases de tipo personalizadas permite implementar clases de clases personalizadas.

En clases de nuevo estilo:

  • tipo es una clase que genera clases definidas por el usuario.
  • Las metaclases son subclases de la clase de tipos.
  • Los objetos de clase son instancias de la clase de tipo, o una subclase de los mismos.
  • Los objetos de instancia se generan a partir de una clase.