Types et classes en Python

Je suis un peu confus sur les types et les classes en Python. Pour, par exemple, à la suite de REPL conversation me confond:

>>> class A: pass
... 
>>> a = A()
>>> type(a)
<type 'instance'>
>>> a.__class__
<class __main__.A at 0xb770756c>
>>> type([])
<type 'list'>
>>> [].__class__
<type 'list'>
>>> type(list)
<type 'type'>
>>> list.__class__
<type 'type'>
>>> type(A)
<type 'classobj'>
>>> A.__class__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: class A has no attribute '__class__'
  1. Pourquoi le type et la classe pour intégré les choses (par exemple, la liste ici) le même, mais différent pour l'utilisateur classes/types?
  2. N'est pas à chaque classe une instance d'une autre classe (comme la Classe en Java)? Pourquoi pas __class__ définis par l'utilisateur classes?

Toute explication complémentaire de la lecture qui permet de clarifier ce comportement serait très apprécié. TIA.

source d'informationauteur sasuke