#35. Пользовательские метаклассы. Параметр metaclass | ООП Python

preview_player
Показать описание

Создаем свои собственные метаклассы. Подключаем их для создания классов с использованием параметра metaclass. Примеры.

Рекомендации по теме
Комментарии
Автор

Это драгоценнейший материал! Это просто золото!! Как же это интересно в твоем изложении! Ты просто Моцарт программирования! Да какой там Моцарт.. Паганини!!!

eelxpen
Автор

Уважаемый Сергей! Согласитесь - не самая простая тема в Python. Но Ваше изложение Последовательности и Механизма работы достойны восхищения и искренней благодарности! Хотел бы для сравнения навести пример аналогичного подхода в изложении материала на YouTube - но не могу. Спасибо!

andrewharazdowskyy
Автор

Вот начались уроки по ооп по интереснее. спасибо за Ваш труд!

qjtkfwp
Автор

Сложнейшая тема, и так хорошо объяснена! Спасибо огромное!

MrJet
Автор

Спасибо за доступные объяснения, за то, что несколько раз важные моменты проговариваете, ваш канал - находка!

citricmint
Автор

Материал действительно уникальный. Впервые просмотрел видео во время его выхода. Сейчас вернулся снова, когда пришло понимание зачем же мне нужны метаклассы))))

oleholeynikov
Автор

вот молодец! очень хорошая подача материала

sergshkurko
Автор

Продолжаем постигать метаклассы! Спасибо большое за отличный урок!

vladimirkulakov
Автор

Интересно, но после этого урока очень жду следующего (где это можно применить). И уж точно попробую это сделать. 😀

qxkysen
Автор

пол года назад я думал, что много знаю про питон. Сейчас понимаю, что я ничего не знаю про питон =)

freeforrussia
Автор

Классная подача, после онлайн курсов - удвоил свои знания на этом канале, если не утроил..СПАСИБО. а можно куда то с вопросом обратиться - было бы бесподобно!!

tuexopq
Автор

При определении метода __new__ мы ведь можем писать super() вместо type?
class Meta(type):
def __new__(cls, name, base, attrs):
attrs.update({'MAX_COORD' : 100, 'MIN_COORD' : 0})
return super().__new__(cls, name, base, attrs)

teacherit
Автор

О теперь я наконец понял, зачем нужен super()

maksimkuznetsov
Автор

А ведь мы можем создавать класс динамически, затем прописывать новый метод и добавлять его в класс как атрибут
A = type('Point', (), {'MAX_COORD' : 100, 'MIN_COORD' : 0})
def method1(self):
print(self.MAX_COORD)
A.method1 = method1
pt = A()
pt.method1()

teacherit
Автор

расширять словарь можно так: attrs |= {'MAX_COORD': 100, 'MIN_COORD': 0}

interface
Автор

Спасибо за замечательные уроки. Что планируется в дальнейшем по Python?

unaibekovbakhyt
Автор

Сергей, можете рассказать чуть подробнее про type и object в плане вызовов для подбора атрибутов и, type ищет объекты по типу : метакласс и т.д. а object по объектам : инициализатор базового класа и т.д?

yooiqzl
Автор

Добрый вечер! Отличное видео, но возник вопрос. На моменте 8:03 (и немного раньше), магический метод __new__ принимает параметр cls, который мы потом передаём в качестве аргумента вызывая type.__new__(cls, ...). На что тут ссылается параметр cls? Заранее спасибо.

Cygni
Автор

Честно говоря не совсем понял по данному примеру зачему нужны метаклассы и в чём отличие от обычного наследования, где можно всё сделать точно также.

segeus
Автор

Зачем наследоваться от type, если можно неявно наследоваться от object и получить тот же функционал?

eodpujs
visit shbcf.ru