Почему «объект» является экземпляром «типа», а «тип» — экземпляром «объекта»?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему «объект» является экземпляром «типа», а «тип» — экземпляром «объекта»?

Сообщение Anonymous »

Меня немного смущают классы object и type в Python 3. Возможно, кто-нибудь сможет прояснить мое замешательство или предоставить дополнительную информацию.

На данный момент я понимаю, что каждый класс (кроме объекта) наследуется от базового класса, называемого объектом. Но каждый класс (включая объект) также является экземпляром типа класса, который является экземпляром самого себя и объекта, а также наследуется от объекта.

Мои вопросы:
  • Есть ли причина/проектное решение, почему возражать< /code> является экземпляром типа, а тип наследуется от объекта? Может ли тип/класс объекта быть самим объектом?
  • Как может класс (type) быть экземпляром самого себя?
  • Какой из них настоящий объект базового класса или тип?

    Я всегда думал, что объект< /code> был бы самым «фундаментальным» классом, но, похоже, это экземпляр типа, который является экземпляром объекта, который является экземпляром типа, .. .
    Где заканчивается эта рекурсия?
  • Есть ли возможность проиллюстрировать связь между объектом и классом типа?
Я пытался найти записи объекта и типа в документации стандартной библиотеки Python.

Каждый класс (кроме объекта) наследуется от объекта.

>>> for x in object, int, float, str, list, dict:
... print(f'{x.__name__:6}: {x.__bases__}')
...
object: ()
int : (,)
float : (,)
str : (,)
list : (,)
dict : (,)


Каждый класс является экземпляром типа класса.

>>> for x in object, int, float, str, list, dict:
... print(f'{x.__name__:6}: {x.__class__}')
...
object:
int :
float :
str :
list :
dict :


type является экземпляром самого себя.

>>> type.__class__



type также наследуется от объекта.

>>> type.__bases__
(,)


Также

>>> isinstance(object, type)
True
>>> isinstance(type, object)
True
>>> isinstance(type, type)
True
>>> isinstance(object, object)
True


>>> issubclass(type, object)
True
>>> issubclass(object, type)
False


Подробнее здесь: https://stackoverflow.com/questions/557 ... -of-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»