Попробуйте следующий фрагмент кода в Python 2.7 и Python 3.1
class AClass:
__slots__ = ['a', 'b', 'c']
print(type(AClass))
print(issubclass(AClass,object))
print(isinstance(AClass,type))
В Python 2.7 вы получите:
<type 'classobj'>
False
False
И Python 3.1 вы получите.
<class type>
True
True
И это все объясняет.Это класс старого стиля в Python 2, если вы не подкласс его из object
.Только в Python3 он будет обрабатываться как новый класс стилей по умолчанию.