2011-01-06 16 views

risposta

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

tipo() restituisce un oggetto di tipo. a è la classe attuale, non il tipo

+0

La tua risposta sembra essere in contraddizione con ciò che l'OP dice nella sua domanda!? Sto solo cominciando ad andare al controllo del tipo, quindi sono interessato a qualsiasi commento. Sei sicuro che tipo (c) == tipo (d)? –

+0

sia 'type (c)' che 'type (d)' restituiscono un tipo 'instance instance ', quindi devono essere uguali. Penso che dovremmo usare 'isinstance' qui. Puoi confermare questo creando 'class x: pass' e' z = x() ', non c'è ereditarietà tra' classe x' e 'classe a', ma troverai ancora' type (z) == type (c) 'restituisce True. – smwikipedia

+0

Quanto sopra è per Python 2.7.8. In Python 3.4.1, 'type (c)' e 'type (d)' restituiranno 'class 'type'', che porterà anche al risultato' True'. Ma non dice 'c' e' d' sono dello stesso tipo. – smwikipedia

Problemi correlati