2011-01-06 13 views

Respuesta

0
>>> class a: 
... pass 
... 
>>> class b(a): 
... pass 
... 
>>> c = b() 
>>> d = a() 
>>> type(c) == type(d) 
True 

tipo() devuelve un objeto de tipo. a es la clase real, no el tipo

+0

¡Su respuesta parece estar en contradicción con lo que dice el OP en su pregunta! Estoy empezando a ir hacia el control de tipos, por lo que estoy interesado en cualquier comentario. ¿Estás seguro de que tipo (c) == tipo (d)? –

+0

tanto 'tipo (c)' como 'tipo (d)' devuelven un tipo 'instancia de clase ', por lo que deben ser iguales. Creo que deberíamos usar 'isinstance' aquí. Puede confirmar esto creando 'class x: pass' y' z = x() ', no hay herencia entre' class x' y 'class a', pero todavía encontrará' type (z) == type (c) 'devuelve verdadero. – smwikipedia

+0

Lo anterior es para Python 2.7.8. En Python 3.4.1, el 'tipo (c)' y 'tipo (d)' devolverá 'clase 'tipo'', lo que también dará lugar al resultado' Verdadero '. Pero no dice 'c' y' d' son del mismo tipo. – smwikipedia

Cuestiones relacionadas