2011-01-06 6 views

Antwort

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

Typ() gibt ein Typ-Objekt. a ist die tatsächliche Klasse, nicht der Typ

+0

Ihre Antwort scheint im Widerspruch zu sein, was das OP in seiner Frage sagt!? Ich fange gerade an, in Richtung Typprüfung zu gehen, also bin ich an irgendwelchen Anmerkungen interessiert. Bist du sicher, dass Typ (c) == Typ (d)? –

+0

Sowohl 'type (c)' als auch 'type (d)' geben einen 'Klasseninstanz'-Typ zurück, so dass sie gleich sein müssen. Ich denke, wir sollten 'isinstance' hier verwenden. Sie können dies bestätigen, indem Sie 'class x: pass' und' z = x() 'erstellen, es gibt keine Vererbung zwischen' class x' und 'class a', aber Sie werden immer noch' type (z) == type (c) 'gibt True zurück. – smwikipedia

+0

Das obige ist für Python 2.7.8. In Python 3.4.1 geben 'type (c)' und 'type (d)' '' class 'type'' zurück, was ebenfalls zu 'True' führt. Aber es heißt nicht, dass "c" und "d" vom selben Typ sind. – smwikipedia