2011-01-06 5 views

ответ

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

типа() возвращает объект типа. a - это фактический класс, а не тип

+0

Ваш ответ, кажется, противоречит тому, что говорит OP в своем вопросе!? Я только начинаю идти на проверку типов, поэтому меня интересуют любые комментарии. Вы уверены, что тип (c) == type (d)? –

+0

Оба типа (c) 'и' type (d) 'возвращают тип экземпляра класса, поэтому они должны быть равны. Я думаю, мы должны использовать 'isinstance' здесь. Вы можете подтвердить это, создав 'class x: pass' и' z = x() ', нет никакого наследования между' class x' и 'class a', но вы все равно найдете' type (z) == type (c) 'возвращает значение True. – smwikipedia

+0

Вышеупомянутое предназначено для Python 2.7.8. В Python 3.4.1 типы type (c) 'и' type (d) 'будут возвращать' class 'type', что также приведет к результату True. Но он не говорит, что 'c' и' d' имеют один и тот же тип. – smwikipedia

Смежные вопросы