Я попробовал это в РЕПЛ Пайтона:В чем разница между `type()` `__class__` и` __bases__` в Python?
>>> class Foo:
... def f():{}
...
>>>
>>> type(Foo)
<type 'classobj'>
>>> Foo.__bases__
()
>>> type(type(Foo))
<type 'type'>
>>> type(Foo).__bases__
(<type 'object'>,)
Однако я до сих пор не могу понять, что «тип данных» означает, что в ООП точно.
В Python я знаю, что экземпляр может получить свой класс .__class__
, а класс может получить свой родительский класс на .__bases__
. Это кажется легким для понимания.
Но что же такое type
«Класс», или TypeObject
? И что означает type
из Type Object
? Что означает __bases__
of Type Object
? В чем разница между type
и class
в Python?
Это выглядит немного запутанным для меня .. У кого-нибудь есть идеи об этом?
Ваш код помечен 'питон-3.x', но это выглядит как' питона-2. x' - 'type (Foo)' возвращает '' в python 3+. –
Holt
Это напрямую не связано с этим вопросом, но полезно знать http://stackoverflow.com/questions/1549801/differences-between-isinstance-and-type-in-python –