Module (50%)
Section (53%)

Внутренняя жизнь классов и объектов: продолжение

__bases__ - это кортеж. Кортеж содержит классы (не имена классов), которые являются прямыми суперклассами для класса.

Порядок такой же, как и в определении класса.

Мы покажем Вам только очень простой пример, поскольку мы хотим подчеркнуть, как работает наследование.

Более того, мы покажем Вам, как использовать этот атрибут, когда будем обсуждать объектные аспекты исключений.

 

Примечание. только классы имеют этот атрибут, объекты - нет.

Мы определили функцию с именем printbases(), предназначенную для четкого представления содержимого кортежа.

Посмотрите на код в редакторе. Проанализируйте его и запустите. Код выведет:

( object ) ( object ) ( SuperOne SuperTwo )

output

Примечание: класс без явных суперклассов указывает на объект (предопределенный класс Python) в качестве его прямого предка.



Code

class SuperOne:
pass


class SuperTwo:
pass


class Sub(SuperOne, SuperTwo):
pass


def printBases(cls):
print('( ', end='')

for x in cls.__bases__:
print(x.__name__, end=' ')
print(')')


printBases(SuperOne)
printBases(SuperTwo)
printBases(Sub)
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×