Внутренняя жизнь классов и объектов: продолжение
__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 }}
×