Множественное наследование. Метаклассы

Слайд 2

__slots__

__slots__

Слайд 3

Наследование Простое наследование Множественное наследование

Наследование

Простое наследование

Множественное наследование

Слайд 4

Множественное наследование

Множественное наследование

Слайд 5

Метаклассы Метакласс - это то, что создаёт эти самые объекты или «фабрика классов» Метакласс Класс Объект

Метаклассы

Метакласс - это то, что создаёт эти самые объекты или «фабрика

классов»

Метакласс

Класс

Объект

Слайд 6

Пример работы с метаклассами #`type` - это класс, как `str` и

Пример работы с метаклассами

#`type` - это класс, как `str` и `int`,

от него тоже можно наследовать
class LowerAttrMetaClass(type):
def __new__(cls, name, bases, clsdict):
attrs = ((attr, value) for attr, value in clsdict.items() if not attr.startswith('__'))
uppercase_attr = dict((attr.lower(), value) for attr, value in attrs)
return type(name, bases, uppercase_attr)
class AttrControled(metaclass=LowerAttrMetaClass):
pass