Базовый класс object python

object (объект)

Объекты — это экземпляры типов. Далее в этой статье речь пойдёт об использовании object в качестве базового класса. Понятие «объект» как таковое более подробно описано на странице «Объекты».

В отличие от классов старого стиля, объекты которых создавались на базе встроенного типа instance , классы нового стиля являются полноценными пользовательскими типами.

Для классов старого стиля type(x) выдаст instance — подразумевается, что класс не представляет собой самостоятельный тип, а лишь является экземпляром некого базового типа.

object — это экземпляр типа type. Более того, обратное утверждение тоже верно. Это потому, что «всё — есть объект»: типы — это объекты, экземпляры типов — тоже объекты. Чтобы усугубить ощущение запутанности, скажем: тип — это подкласс объекта, однако обратное не верно.

 isinstance(object, type) # True 
isinstance(object, object) # True

isinstance(type, object) # True
isinstance(type, type) # True

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

Классы старого стиля упразднены в Python 3: теперь пользовательские типы, определённые без явного указания родителя, автоматически являются наследниками object . Переход на такую унифицированную объектную модель, помимо прочего, сделал возможным наследование от встроенных типов, применение дескрипторов, адекватное определение порядка разрешения методов при множественном наследовании.

 # Следующие определения пользовательских типов 
# эквивалентны.

# Python 2
class A(object): pass

# Python 3
class A: pass

Источник

Читайте также:  Np random randn python
Оцените статью